2010-05-13 14 views
1

J'ai des boutons contenus dans un répéteur. Un ModalPopupExtender est utilisé pour confirmer l'événement pour chaque bouton. Je crée des panneaux standard à l'extérieur du répéteur et j'attache chaque bouton dans le répéteur à ces panneaux de l'intérieur du répéteur. Le problème est une fois que le bouton est pressé dans le popup Je ne peux pas comprendre comment déterminer quelle ligne du répéteur à éditer car je ne peux pas comprendre comment identifier quel bouton a été pressé. Panel:Comment obtenir un bouton spécifique enfoncé dans un répéteur lors de l'utilisation de 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> 

Répéteur:

<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"/> 
... 

Poignée de l'événement:

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 

Répondre

0

Je mettrais une entrée cachée à la valeur de la ligne que vous modifiez le clic client en utilisant javascript, puis sur le gestionnaire, demandez simplement cette variable et c'est la ligne que vous éditez.

0

Pourquoi ne pas attribuer simplement un CommandArgument avec quelque chose d'unique à cette ligne comme l'ID du numéro de téléphone ou quelque chose?

Par exemple, si vous voulez l'index de la ligne:

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

Ensuite, vous pouvez y accéder dans votre gestionnaire de CommandEventArgs.

+0

Parce que commandarg ne sera pas disponible à partir du panneau modal. Lorsque vous cliquez sur ce bouton, le modaldialog s'ouvre et à partir de là, vous cliquez sur un autre bouton pour continuer. L'argot de Cammand devrait être réglé dans le second bouton mais la valeur serait inconnue jusqu'à l'événement. – NomadicDeveloper