对于radgrid,在GridNeedDataSource事件中,eventargs包括: RebindReason IsFromDetailTable
这对于确定重新绑定是由父网格还是子网格引起很有用。
如果我有3层网格怎么办? 父母>小孩>孙子
这个布尔参数只会告诉我提升事件的网格是否是父母,它不能告诉我是儿童还是孙子......还是我错过了什么?
如何确定引发事件的网格层次结构的深度?
编辑:我怀疑我可以利用sender.Equals()方法,但我不确定如何定位细节或主表格控件答案 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中,您可以检查网格名称并选择数据源进行绑定...