如何确定哪个细节表引发了Telerik radgrid NeedDataSource事件?

时间:2010-09-09 22:53:02

标签: data-binding telerik parent-child radgrid

对于radgrid,在GridNeedDataSource事件中,eventargs包括: RebindReason IsFromDetailTable

这对于确定重新绑定是由父网格还是子网格引起很有用。

如果我有3层网格怎么办? 父母>小孩>孙子

这个布尔参数只会告诉我提升事件的网格是否是父母,它不能告诉我是儿童还是孙子......还是我错过了什么?

如何确定引发事件的网格层次结构的深度?

编辑:我怀疑我可以利用sender.Equals()方法,但我不确定如何定位细节或主表格控件

3 个答案:

答案 0 :(得分:4)

您应该为此目的使用DetailTableDataBind事件。您可以参考RadGrid programmatic hierarchy binding demo。 DetailTableDataBind事件是绑定详细信息表的推荐方法。它会为每个要数据绑定的细节表触发。使用event参数对象,可以获得绑定的GridTableView实例(e.DetailTable)。如果您为表指定了名称,e.DetailTable.Name将标识当前父网格项的详细信息表。

答案 1 :(得分:0)

好吧,我还没有想出办法来确定这一点。我所做的是侦听网格的ItemCommand事件,并确定通过e.Item.OwnerTableView.Name参数引发expand / collapse命令的表视图。

答案 2 :(得分:0)

RadGrid的每个gridtable视图都有Name。在DetailTableDataBind中,您可以检查网格名称并选择数据源进行绑定...