嵌套网格不触发事件

Nested grid do not fire event

这是一个带有一些事件的嵌套网格:

<%--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"   >

后面的代码:

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";}

(...)

而我的 here.text 留空。但是显示嵌套网格。

我需要访问父键值、折叠嵌套网格、隐藏嵌套网格或计算行数。
不会进行编辑,不会单击行,这些网格仅在 模板列 > 项目模板 中显示数据。

有嵌套网格触发事件的方法吗? 在 上,我什至可以访问数据绑定信息。

嵌套网格不触发事件!

如果您需要访问明细表、项目等。
您需要向 MasterTableView 中的 PreRender 添加方法,如下所示:

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

该方法将递归地遍历网格。
您的操作方式可能会根据您的 HieararchyLoadMode.

而改变

这是我的方法,如果您处于 ClientServerbind 模式,则存在最简单的方法。

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); 
            }
        }
    }
}