以下是包含某些事件的嵌套网格:
<%--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 保持空白。但是会显示嵌套网格。
我需要访问父键值,折叠嵌套网格,隐藏嵌套网格或计算行数。
没有编辑,没有行点击,这些网格仅显示模板列中的数据&gt; 项目模板。
嵌套网格是否有办法触发事件? 在女巫身上,我甚至可以访问数据库信息。
答案 0 :(得分:0)
嵌套网格DO Not Fire事件!
如果您需要访问详细信息表,项目等。
您需要向PreRender
中的MasterTableView
添加方法,如下所示:
<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);
}
}
}
}