2010-05-13 36 views
1

我的按钮包含在中继器中。 ModalPopupExtender用于确认每个按钮的事件。我在中继器外部创建标准面板,并将中继器中的每个按钮从中继器内部连接到这些面板。问题是一旦在弹出窗口中按下按钮,我无法弄清楚如何确定要编辑的中继器的哪一行,因为我无法弄清楚如何识别哪个按钮被按下。 面板:如何在使用ModalPopupExtender时在中继器中按下特定按钮

<asp:Panel ID="pnlRemoveAlert" runat="server" > 
<h1 align="center">Remove Phone</h1> 
<asp:Button ID="butRemove" runat="server" OnCommand="Handle_Click" CommandName="Remove" Text="Continue"/> 
<asp:Button ID="butRemoveCancel" runat="server" Text="Cancel"/> 
</asp:Panel> 

中继器:

<asp:Repeater ID="repPhoneNumbers" runat="server" OnItemDataBound="setButtonModals"> 
<ItemTemplate> 
... 
<asp:Button ID="btnStatus" runat="server"/> 
<asp:Button ID="dummybutton" runat="Server" Visible="false" /> 
<ajaxToolkit:ModalPopupExtender ID="mpeEnable" runat="server" TargetControlID = "btnStatus 
    CancelControlID="butEnableCancel" 
    PopupControlID="pnlEnableAlert"/> 
... 

事件句柄:

Protected Sub Handle_Click(ByVal sender As Object, ByVal e As CommandEventArgs) 
'I need to know which row of the repeater to deal with here 
End Sub 

回答

0

我会成立一个隐藏的输入与你在客户端点击编辑该行的值使用JavaScript,然后在处理程序只是请求该变量,这就是你正在编辑的行。

0

为什么不直接给CommandArgument分配一些与该行相同的内容,如电话号码ID或其他?

例如,如果你想要的行索引:

<asp:Button ID="btnStatus" runat="server" 
    CommandArgument="<%# Container.ItemIndex.ToString() %>" /> 

然后你就可以在你的处理器的CommandEventArgs访问它。

+0

由于该命令栏不能从模式面板获得。当你点击那个按钮时,它将打开模式对话框,然后你将点击另一个按钮继续。 Cammand arg将不得不在第二个按钮中设置一些值,但在事件发生之前该值是未知的。 – NomadicDeveloper 2010-05-13 16:42:30

相关问题