如何获取已知ListViewDataItem的ListView

时间:2012-02-15 10:42:14

标签: c# asp.net listview find

我的.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

2 个答案:

答案 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听起来像代码味道。 是否可以为复选框分配一个值,您可以使用该复选框来识别列表视图?