La façon dont je l'ai fait:
- Placez le ModalPopupExtender extérieur (après) du contrôle de répéteur.
- Ajoutez un bouton qui servira de cible «fausse» pour le ModalPopupExtender, placez-le à l'extérieur (après) du répéteur. Utilisez l'affichage 'Style = ": none"' pour masquer le bouton de l'utilisateur. Aucun événement OnClick ne doit être lié à ce bouton.
- Placez le panneau cible de ModalPopupExtender à l'extérieur du répéteur.
- Dans le modèle d'élément du répéteur ajouter un linkbutton avec onclick, en utilisant la linkbutton vous permet d'utiliser le CommandArgument, qui peut être lié à un DataBinder - dire pour un enregistrement ID
- Dans le codebehind créer un sous qui gère la événement onclick pour le linkbutton dans le répéteur. Si nécessaire, faites un directCast de l'objet expéditeur à un lien de lien afin que vous ayez accès au commandArgument.
- alimenter le panneau cible de ModalPopupExtender appropriée
- Faites un ModalPopupExtender.show()
HTML
<ul id="Repeater">
<asp:Repeater ID="rptMain" runat="server">
<HeaderTemplate>
<span class="RepeaterHeader">
<li>
Edit
</li>
</span>
<div class="clear"></div>
</HeaderTemplate>
<ItemTemplate>
<li class="RptLeadItemEdit">
<asp:LinkButton ID="btEdit" runat="server" Text="Edit"
CommandArgument='<%#DataBinder.Eval(Container.DataItem, "ID")%>'
OnClick="OpenMPEEdit" />
</li>
<div class="clear"></div>
</ItemTemplate>
</asp:Repeater>
</ul>
<asp:Button ID="MpeFakeTarget" runat="server"
CausesValidation="False" Style="display:none" />
<asp:ModalPopupExtender ID="mpeEdit" runat="server"
TargetControlId="MpeFakeTarget"
PopupControlID="pnlEdit"
OkControlID="btCloseMPE"
BackgroundCssClass="ModalPopupBG" />
<asp:Panel CssClass="ModalPanel" runat="server" ID="pnlEdit">
EDIT LEAD
<asp:Label runat="server" ID="MPETEST"></asp:Label>
<asp:Button runat="server" ID="btCloseMPE" text="Close" />
</asp:Panel>
code Derrière
Protected Sub OpenMPEEdit(ByVal sender As Object, ByVal e As System.EventArgs)
Dim wLink As New LinkButton
wLink = DirectCast(sender, LinkButton)
MPETEST.Text = "ID = " & wLink.CommandArgument
mpeEdit.Show()
End Sub
essayé et le li nkbutton click ne fait rien, il n'entre pas dans le code du sous-marin. Des idées? – SteveCav
Ceci est le code fonctionne bien – tony
Juste une idée: avez-vous changé la ligne '
CassidyTheMan