31 messaggi dal 12 marzo 2007
Vorrei poter passare degli argomenti alla funzione che gestisce l'onClick di un imagebutton...

come posso fare?
che tipo di argomenti? comunque puoi farlo specificanto il CommandArguments.

ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
31 messaggi dal 12 marzo 2007
umh dunque io ho:

<asp:imagebutton id="ImageButton1" runat="server" OnClick="ImageButton1_Click" CommandArgument="prova" ImageUrl="~/immagini/error.png" CommandName="argomento"></asp:imagebutton>

nel CodeBehind se dichiaro la funzione imagebutton1_click come:

protected void ImageButton1_Click(object sender, ImageClickEventArgs e, CommandEventArgs es)
{
string ciao = es.CommandArgument.ToString();
Response.Write(ciao);
}


mi dà questo errore:

Errore43Nessun overload di 'ImageButton1_Click' corrisponde al delegato 'System.Web.UI.ImageClickEventHandler'.C:\Documents and Settings\Evil\Documenti\Visual Studio 2005\WebSites\WebSite6\home.aspx179



dove sbaglio?
Grazie ancora!
189 messaggi dal 28 maggio 2007
ImageButton1_Click riceve solo 2 argomenti, SENDER e EventArgs.

Dopo, fai così:

string str1 = e.CommandArgument;
string str2 = e.CommandName;

Ciao

Andrea R.
come dice chiaramente l'errore la firma del tuo metodo non corrisponde a quella del delgato, che è la seguente.

Sub ImageButton_Click(sender As Object, e As ImageClickEventArgs) 
  
End Sub


ora visto che l'oggetto ImageClickEventArgs non espone la proprietà CommandName o CommandArgument

ti conviene castate l'oggetto che ha scatenato l'evento (sender) al tipo ImageButton e accedere alla relative proprietà.

ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
31 messaggi dal 12 marzo 2007
scusami ancora Nostromo, ma temo mi manchi qualche base ..

dovrei dunque dichiarare la mia funzione così ?

protected void ImageButton1_Click(ImageButton sender, ImageClickEventArgs e)



però l'errore è uguale al precedente :\
la firma deve essere:


ImageButton_Click(sender As Object, e As ImageClickEventArgs)

il primo argomento è del tipo object.

e per castare intendevo qualcosa del genere:


imageB As ImageButton = CType(sender, ImageButton)

dopo utilizzi il tuo riferimento imageB.

non conosco bene VB, controlla la sintassi.


ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
189 messaggi dal 28 maggio 2007
Esatto Marco, non ho precisato bene.

x-tod, hai 2 possibilità:

1) Invece di usare l'evento CLICK dell'ImageButton, usa l'evento COMMAND.
Così, sarà generato un eventHandler come questo:
private void ImageButton1_Command(object sender, System.Web.UI.WebControls.CommandEventArgs e)
E dopo ti basta usare
e.CommandArgument
e.CommandName

2) Usare l'evento CLICK:
private void ImageButton1_Click(object sender, System.Web.UI.ImageClickEventArgs e)
E fare un cast:
ImageButton imgb1 = (ImageButton)sender;
E dopo:
imgb1.CommandArgument
imgb1.CommandName

Ciao

Andrea R.

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.