ASP.Net: pourquoi mon click du bouton de commande/événements pas de liaison/de tir dans un répéteur?
Voici le code à partir de la ascx qui a le répéteur:
<asp:Repeater ID="ListOfEmails" runat="server" >
<HeaderTemplate><h3>A sub-header:</h3></HeaderTemplate>
<ItemTemplate>
[Some other stuff is here]
<asp:Button ID="removeEmail" runat="server" Text="X" ToolTip="remove" />
</ItemTemplate>
</asp:Repeater>
Et dans le code-behind pour le répéteur est lié aux données et événements:
Protected Sub ListOfEmails_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.RepeaterItemEventArgs) Handles ListOfEmails.ItemDataBound
If (e.Item.ItemType = ListItemType.Item) Or (e.Item.ItemType = ListItemType.AlternatingItem) Then
Dim removeEmail As Button = CType(e.Item.FindControl("removeEmail"), Button)
removeEmail.CommandArgument = e.Item.ItemIndex.ToString()
AddHandler removeEmail.Click, AddressOf removeEmail_Click
AddHandler removeEmail.Command, AddressOf removeEmail_Command
End If
End Sub
Sub removeEmail_Click(ByVal sender As Object, ByVal e As System.EventArgs)
Response.Write("<h1>click</h1>")
End Sub
Sub removeEmail_Command(ByVal sender As Object, ByVal e As CommandEventArgs)
Response.Write("<h1>command</h1>")
End Sub
Ni le clic ou la commande est appelé, ce que je fais mal?
OriginalL'auteur travis | 2008-09-03
Vous devez vous connecter pour publier un commentaire.
Commandes imbriquées à l'intérieur des Répéteurs ne pas intercepter les événements. Au lieu de cela vous avez besoin de se lier à l'
Repeater.ItemCommand
Événement.ItemCommand
contientRepeaterCommandEventArgs
qui a deux domaines importants:Donc, un exemple trivial:
OriginalL'auteur FlySwat
Vous devez gérer la ItemCommand événement sur votre Répéteur. Voici un exemple.
Alors, à vos clics sur le bouton seront traitées par le ListOfEmails_ItemCommand méthode. Je ne pense pas que de câblage de Cliquer ou d'événement de la Commande (bouton) dans ItemDataBound fonctionne.
OriginalL'auteur Craig
Si vous avez l'intention d'utiliser ItemCommand événement, assurez-vous de vous inscrire pour ItemCommand événement dans Page_Init pas dans Page_Load.
Je ne suis pas sûr pourquoi elle n'avait pas de travail pour moi avec cet événement, inscrit dans le Page_Load mais en le déplaçant à Page_Init aidé.
OriginalL'auteur Piotr Latusek
Voici une expérience pour vous d'essayer:
Définir un point d'arrêt sur ListOfEmails_ItemDataBound et voir si on l'appelle pour les publications.
OriginalL'auteur Brad Wilson