Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何获取已知ListViewDataItem的ListView_C#_Asp.net_Listview_Find - Fatal编程技术网

C# 如何获取已知ListViewDataItem的ListView

C# 如何获取已知ListViewDataItem的ListView,c#,asp.net,listview,find,C#,Asp.net,Listview,Find,我的.aspx页面上有很多列表视图。在每个ListView的ItemTemplate中都有一个复选框,onCheckedChanged会调用一个方法。对于其各自列表视图中的所有复选框,该方法是相同的 在方法内部,我有一段代码,用于获取触发事件的CheckBox对象和包含CheckBox对象的ListViewDataItem: // Gets the CheckBox object that fired the event. CheckBox chkBox = (CheckBox)sender;

我的.aspx页面上有很多列表视图。在每个ListView的ItemTemplate中都有一个复选框,onCheckedChanged会调用一个方法。对于其各自列表视图中的所有复选框,该方法是相同的

在方法内部,我有一段代码,用于获取触发事件的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

非常感谢您的帮助 非常感谢。 致意

尼克兹德

ListView myListView = (ListView)item.NamingContainer;
编辑

<ItemTemplate>
   <asp:Panel ID="pnSomeParent" runat="server">
     <asp:CheckBox ......
   </asp:Panel>
</ItemTemplate>
我也会把它用在这个项目上

ListViewDataItem item = (ListViewDataItem)chkBox.NamingContainer;
您避免使用Parent.Parent.Parent

<ItemTemplate>
   <asp:Panel ID="pnSomeParent" runat="server">
     <asp:CheckBox ......
   </asp:Panel>
</ItemTemplate>


如果你问我,使用parent.parent.parent听起来像是一种代码气味。
是否可以为复选框指定一个值,用于标识listview?

谢谢您的回答。你对复选框的想法听起来不错。我可以通过将复选框名称强制转换为字符串来命名复选框,从而从中获取ListView名称。但是接下来我将如何将字符串转换为ListView类型?我需要ListView的名称,以便在ListView上进行其他操作。非常感谢nickzdeSorry,因为它没有那么干净,但是您可以执行this.FindControl并传递ListView的名称,然后您应该能够强制转换它
我不确定您想用listview做什么,但这可能会帮助您。谢谢,这正是我最终做到的。我把你的答复记为答复。顺致敬意,尼克兹德