C# 如何在子中继器的ItemCommand事件中获取当前中继器
这是HTML代码:C# 如何在子中继器的ItemCommand事件中获取当前中继器,c#,asp.net,nested-repeater,C#,Asp.net,Nested Repeater,这是HTML代码: <asp:Repeater ID="Repeater1" runat="server" OnItemDataBound="Repeater1_ItemDataBound"> <ItemTemplate> <h1>Repeater 1</h1> <asp:Repeater ID="Repeater2" runat="server" OnItemDataBound="Re
<asp:Repeater ID="Repeater1" runat="server"
OnItemDataBound="Repeater1_ItemDataBound">
<ItemTemplate>
<h1>Repeater 1</h1>
<asp:Repeater ID="Repeater2" runat="server" OnItemDataBound="Repeater2_ItemDataBound">
<ItemTemplate>
<h1>Repeater 2</h1>
<asp:LinkButton CommandArgument='<%#Container.ItemIndex%>' CommandName="cmdDeleteItem" ID="lnkDelete" runat="server" >Delete</asp:LinkButton>
</ItemTemplate>
</asp:Repeater>
</ItemTemplate>
</asp:Repeater>
Repeater2\u ItemCommand事件可能是无法找到自身的Repeater(Repeater2) 您不能使用
FindControl
方法。在这种情况下,应将源参数强制转换为Repeater
,如下所示:
var Repeater2 = (Repeater)source;
然后,您可以访问中继器的所有属性,该中继器的
item\u命令
事件被触发。Repeater2\u ItemCommand
未连接到aspx代码中的中继器2。你调试代码了吗?您是否能够在Repeater2\u ItemCommand
中找到断点?并且不确定事件处理程序的逻辑意义是什么。您正在尝试将repeater的项目作为ArrayList获取,然后将count添加到该列表中,然后再次将该ArrayList绑定到repeater,并且在单击delete按钮时也是如此。这里我遗漏了什么?它打断了一行:var list=newarraylist(Repeater2.Items);你犯了什么错误?你明白我的第一句话了吗?您能解释一下事件处理程序的逻辑吗?“对象引用未设置为对象的实例。”当我按下子转发器中的按钮(删除按下按钮的行)时,我会绑定子转发器数据。
var Repeater2 = (Repeater)source;