Question

J'ai un ImageButton être construire à l'intérieur de radgridview columnn. Il est défini comme suit.

<asp:ImageButton ID="ImageButton_DeleteRun" ImageUrl="~/Assets/Images/Misc/delete.png"
runat="server" OnClick="QueryDelete" CommandName="QueryDelete" 
CommandArgument='<%# DataBinder.Eval(Container,"DataItem.QueryGuid") %>'
Width="10" Height="10" />

Il se charge correctement. Quand je clique dessus, je pense à frapper la méthode codebehind suivante:

protected void QueryDelete(object sender, EventArgs e)
{
/* A bunch of code*/
}

Il n'arrive. Ce qui est plus fustrating est que si je remplace le ImageButton avec

<asp:LinkButton ID="ImageButton_DeleteRun" Text="X"
runat="server" OnClick="QueryDelete" CommandName="QueryDelete" 
CommandArgument='<%# DataBinder.Eval(Container,"DataItem.QueryGuid") %>'/>

Il fonctionne parfaitement. Y at-il quelque chose de mal avec ImageButton? Est-ce que je manque quelque chose?

EDIT - Nouvelle information

Au fond lorsque le bouton d'image est rendu, il n'y a pas href.

Bizarre -

<input type="image" style="height: 10px; width: 10px; border-width: 0px;" src="../Assets/Images/Misc/delete.jpg"
id="ctl00_ctl00_ctl00_AllContent_MainContent_MainContent_controlPanelQueryHistory_saved_RadGridQueryHistory_ctl00_ctl04_ImageButton1"
name="ctl00$ctl00$ctl00$AllContent$MainContent$MainContent$controlPanelQueryHistory_saved$RadGridQueryHistory$ctl00$ctl04$ImageButton1"/>

<a
href="javascript:__doPostBack('ctl00$ctl00$ctl00$AllContent$MainContent$MainContent$controlPanelQueryHistory_saved$RadGridQueryHistory$ctl00$ctl04$ImageButton_DeleteRun','')"
id="ctl00_ctl00_ctl00_AllContent_MainContent_MainContent_controlPanelQueryHistory_saved_RadGridQueryHistory_ctl00_ctl04_ImageButton_DeleteRun">delete</a>
Était-ce utile?

La solution

En tant que travail autour de vous pouvez essayer envelopper une image dans un LinkButton.

<asp:LinkButton ID="ImageButton_DeleteRun" Text="X"
runat="server" OnClick="QueryDelete" CommandName="QueryDelete" 
CommandArgument='<%# DataBinder.Eval(Container,"DataItem.QueryGuid") %>'>
    <img src="~/Assets/Images/Misc/delete.png" /> 
</asp:LinkButton>

Autres conseils

Peut-être que la page est de valider? Si oui, essayez d'ajouter CausesValidation = false au ImageButton.

Vous pouvez essayer de remplacer OnClick avec OnCommand pour voir si cela résout le problème.

Question idiote - mais est le ImageUrl rendu d'une image valide ou rouge-x

?

Mettre les deux types de lien dans la page puis « Afficher la source » sur la page résultante. Cela peut vous donner quelques indices sur ce qui se passe. Il peut être rendre les ImageButton d'une manière que JavaScript ou CSS est chambouler.

Comment obtenez-vous les arguments de commande dans Surclic? Vous avez un EventArgs. Le gestionnaire OnCommand a CommandEventArgs contenant le CommandName et CommandArguments:

protected void image_Command(object sender, CommandEventArgs e)
{
}

Il serait logique d'utiliser le OnCommand.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top