2016-07-21 19 views
0

Hier ist eine verschachtelte Raster mit einem Ereignis:Nested Gitter nicht ausgelöst Ereignis

<%--BLOCK : TEST--%> 
<telerik:GridTableView CssClass="noColapse" runat="server" Name="RptPV" DataSourceID="LDS_PV_info" DataKeyNames="MSE_compteur" HierarchyDefaultExpanded="True" 
         OnCallingDataMethods="Unnamed_CallingDataMethods" 
         OnDataBinding="Unnamed_DataBinding" 
         OnDisposed="Unnamed_Disposed" 
         OnCreatingModelDataSource="Unnamed_CreatingModelDataSource" 
         OnDataBound="Unnamed_DataBound" 
         OnInit="Unnamed_Init" 
         OnLoad="Unnamed_Load" 
         OnPreRender="Unnamed_PreRender" 
         OnSelectedIndexChanged="Unnamed_SelectedIndexChanged" 
         OnUnload="Unnamed_Unload" > 

-Code hinter:

protected void Unnamed_CallingDataMethods(object sender, CallingDataMethodsEventArgs e) 
    { this.here.Text += "CallingDataMethods";} 

protected void Unnamed_DataBinding(object sender, EventArgs e) 
    { this.here.Text += "Unnamed_DataBinding";} 

protected void Unnamed_Disposed(object sender, EventArgs e) 
    { this.here.Text += "Unnamed_Disposed";} 

protected void Unnamed_CreatingModelDataSource(object sender, CreatingModelDataSourceEventArgs e) 
    { this.here.Text += "Unnamed_CreatingModelDataSource";} 

protected void Unnamed_DataBound(object sender, EventArgs e) 
    { this.here.Text += "Unnamed_DataBound";} 

(...) 

Und mein here.text Aufenthalt leer. Aber das verschachtelte Raster wird angezeigt.

Ich muss auf einen übergeordneten Schlüsselwert zugreifen, ein verschachteltes Raster ausblenden, ein verschachteltes Raster ausblenden oder die Anzahl der Zeilen zählen.
Es gibt keine Bearbeitung, keine Zeilenklicks, diese Raster zeigen nur Daten in Vorlagen mit Vorlagen>Artikelvorlage.

Gibt es eine Möglichkeit für ein verschachteltes Grid Ereignis auszulösen? In diesen kann ich sogar auf Daten zugreifen.

Antwort

0

Ein verschachteltes Gitter DO NOT Fire event!

Wenn Sie auf Detailtabellen, Artikel usw. Zugreifen müssen.
Sie benötigen ein Verfahren zum PreRender im MasterTableView wie folgt hinzuzufügen:

<MasterTableView DataSourceID="myDataSource" 
        AllowMultiColumnSorting="True" 
        DataKeyNames="Key1,Key2,KeyN" 
        HierarchyDefaultExpanded="True" 
        OnPreRender="Unnamed_PreRender" > 

Verfahren durch das Gitter rekursiv mit laufen wird.
Die Art, wie Sie es tun, kann sich je nach Ihrem HieararchyLoadMode ändern.

Also das ist meine Art, es zu tun, einfachsten Weg existieren, wenn Sie auf Client oder Serverbind Modus sind.

protected void Unnamed_PreRender(object sender, EventArgs e) 
{ 
    // MyControler is my recursive method. 
    MyControler(RadGRID_MASTER.MasterTableView); 
} 



private void MyControler(GridTableView gridTableView) 
{ 
    GridItem[] nestedViewItems = gridTableView.GetItems(GridItemType.NestedView);  
    foreach (GridNestedViewItem nestedViewItem in nestedViewItems) 
    { 
     foreach (GridTableView nestedView in nestedViewItem.NestedTableViews) 
     { 
      // Here you can operate your controls the way you want. 
      if (nestedView.Name == "LAC" && nestedView.Items.Count == 0) 
      { 
       // Do stuff 
      } 

      if(nestedView.HasDetailTables) 
      { 
       MyControler(nestedView); 
      } 
     } 
    } 
}