2010-05-13 13 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

相關問題