ASP.NET ImageButton Événement Onclick n'est pas manipulé
J'ai un ImageButton dans un GridView.
<asp:GridView ID="ItemGridView" runat="server" DataKeyNames="Id"
OnRowDataBound="ItemGridView_RowDataBound" AllowPaging="True"
AllowSorting="True" EnableSortingAndPagingCallbacks="True"
AutoGenerateEditButton="False" AutoGenerateDeleteButton="false"
DataSourceID="ItemDataSource" EnableViewState="true" >
....
<asp:TemplateField ShowHeader="False" ItemStyle-Width="40px">
<ItemTemplate>
<asp:ImageButton ID="btnDelete" SkinID="btnDelete"
runat="server" CausesValidation="false"
OnClick="btnDeleteAccountItem_Click"
OnClientClick="javascript:return confirm('Are you sure?');" />
</ItemTemplate>
</asp:TemplateField>
et un gestionnaire pour le bouton supprimer de l'événement
protected void btnDeleteAccountItem_Click(object sender, EventArgs e) {
ImageButton btnDel = sender as ImageButton;
GridViewRow row = (GridViewRow)btnDel.NamingContainer;
....
}
Je suis en utilisant ce même construire dans de nombreux endroits et il fonctionne très bien. J'ai un gridview maintenant, bien que, où il ne fait pas, et je suis l'espoir d'obtenir quelques idées sur la façon d'éradiquer le problème.
Quand je clique sur le bouton, le côté client événement se déclenche et le message d'alerte s'affiche, puis l'après-feux arrière et je peux frapper un point de rupture dans le Page_Load
méthode. De sorte que le côté client de câblage du bouton d'événements semble fonctionner. Cependant, l'événement n'est pas traitée et la méthode btnDeleteAccountItem_Click n'est pas appelé.
C'est une page complexe et je ne peux pas poster tout le code. Que puis-je faire pour limiter les causes?
IsPostBack est vrai et la forme de la collection semble être vide. Qu'est-ce que cela signifie?
Je dois ajouter que le contrôle GridView est sur un contrôle MultiView, et que la balise form est dans la page maître.
Voir ci-dessous - le EVENTTARGET a maintenant la valeur correcte, il me semble, mais toujours sans appel du gestionnaire.
OriginalL'auteur cdonner | 2009-10-20
Vous devez vous connecter pour publier un commentaire.
Votre événement est défini de manière incorrecte ImageButton.Cliquez sur:
Est votre OnClientClick faire autre chose que de confirmer?
non, juste éclater la boîte d'alerte.
Qu'advient-il si vous supprimez complètement le OnClientClick de la majoration?
Rien de cela n'a de sens, alors je vais poser cette question. Page_Load le feu d'abord, puis de vos événements, vous êtes le débogage assez loin dans le cycle de vie de page pour accéder à votre événement?
OriginalL'auteur rick schott
Je ne suis pas sûr si cela va résoudre, mais une fois que j'ai placé un asp:Bouton de contrôle de balisage et a généré le "onClick" signature pour elle aussi.
Puis j'ai changé d'avis et a décidé de faire une Image de bouton... ... j'ai simplement réécrit la balise de moi-même.
Après avoir fait ces modifications, j'ai réalisé que le onClick signature ne fonctionnait plus... après quelques recherches, j'ai trouvé une réponse... j'ai été en utilisant 'EventArgs' au lieu de 'ImageClickEventArgs'...
Une fois que j'ai changé l'événement arg objet, il a commencé à travailler comme d'habitude.
OriginalL'auteur Dal
plutôt que de créer un événement de clic de bouton, vous pouvez utiliser la grille de ligne de commande de l'événement
Vous pouvez ensuite utiliser l'e.commandName et de l'e.commandArgument pour savoir quel bouton a été pressé et que son argument est:
Espère que cela aide
OriginalL'auteur Paul
assurez-vous que le CausesValidation est définie sur True.
OriginalL'auteur Barry
Vous pouvez essayer (vous êtes la création de mal événement click de ImageButton) :
et pour l'image du bouton il y a du changement dans l'événement click comme suit :
OriginalL'auteur Vaibhav Chaurasiya