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

Repeater:

<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 что-то уникальное для этой строки, например, идентификатор номера телефона или что-то еще?

Например, если вы хотите, чтобы индекс строки:

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

Тогда вы можете получить доступ к его в хендлере CommandEventArgs.

+0

Потому что команда Commarg не будет доступна с модальной панели. Когда вы нажмете эту кнопку, он откроет modaldialog, и оттуда вы нажмете еще одну кнопку, чтобы продолжить. Cammand arg должен был бы определить, как установить вторую кнопку, но значение будет неизвестно до события. – NomadicDeveloper