我的.aspx页面上有很多ListView。在每个ListView的ItemTemplate里面都有一个复选框,onCheckedChanged调用一个方法。该方法对于各自ListView中的所有复选框都是相同的。
在方法内部,我有一个代码,它获取触发事件的CheckBox对象并获取包含CheckBox对象的ListViewDataItem:
// Gets the CheckBox object that fired the event.
CheckBox chkBox = (CheckBox)sender;
// Gets the item that contains the CheckBox object.
ListViewDataItem item = (ListViewDataItem)chkBox.Parent.Parent;
现在,我想更进一步,获取ListViewDataItem的“父”ListView。但是......好像:
ListView myListView = (ListView)item.Parent.Parent........;
不起作用,可能是因为ListView与ListViewDataItem处于不同的继承层次结构中。
你如何获得ListView?
非常感谢任何帮助 谢谢 最好的问候
nickzde
答案 0 :(得分:0)
ListView myListView = (ListView)item.NamingContainer;
修改强>
我也会将它用于项目
ListViewDataItem item = (ListViewDataItem)chkBox.NamingContainer;
您可以避免 Parent.Parent.Parent
<ItemTemplate>
<asp:Panel ID="pnSomeParent" runat="server">
<asp:CheckBox ......
</asp:Panel>
</ItemTemplate>
答案 1 :(得分:0)
如果你问我,使用parent.parent.parent听起来像代码味道。 是否可以为复选框分配一个值,您可以使用该复选框来识别列表视图?