嵌套网格不触发事件
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
.
而改变
这是我的方法,如果您处于 Client
或 Serverbind
模式,则存在最简单的方法。
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);
}
}
}
}
这是一个带有一些事件的嵌套网格:
<%--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
.
这是我的方法,如果您处于 Client
或 Serverbind
模式,则存在最简单的方法。
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);
}
}
}
}