Principale utente con più risposte
Click su Button dinamico

Domanda
-
Ciao,
una volta generato un Button dinamicamente in ASP.NET, aggiungo l'evento Click collegato ad una funzione sullo stesso Button:
Button button2 = new Button();
button2.Text = "Dynamic";button2.Click += new EventHandler(but_Click);void but_Click(object sender, EventArgs e)
{
TextBox1.Text = "OK";
}la rispettiva funzione "but_Click" non viene eseguita al click sul Button2 generato e lo stesso scompare dopo il click.
E' corretto il codice riportato?
- Modificato joesef domenica 19 gennaio 2020 18:33 precisazione
Risposte
-
Ho comunque notato che se il codice della funzione:
protected void Button1_Click(object sender, EventArgs e)
lo inserisco in:
protected void Page_Load(object sender, EventArgs e)
l'evento void But_Click(object sender, EventArgs e) viene eseguito correttamente al click su button2 (dinamico) e lo stesso button2 non scompare dopo il click.
E' normale perchè l'evento But_Click provoca un postback e quindi il button2 "scompare" giustamente.
Dato che il button2 viene popolato solo all'evento But_Click, al ricaricamento della pagina (provocato dal postback) il button non viene aggiunto alla pagina.
Paolo Pranzo
- Proposto come risposta Yordan IvanovMicrosoft contingent staff, Moderator martedì 28 gennaio 2020 10:23
- Contrassegnato come risposta Evgin IsmailMicrosoft contingent staff martedì 4 febbraio 2020 11:39
Tutte le risposte
-
-
Buongiorno Joesef,
Ha risolto il problema?
• Microsoft offre questo servizio gratuitamente, per aiutare gli utenti e aumentare il database dei prodotti e delle tecnologie. Il contenuto fornito “as is“ non comporta alcuna responsabilità da parte dell’azienda.
-
Non funziona neppure così;
in realtà io ho inserito button2 in un Panel:
Button button2 = new Button();
button2.Text = "Dynamic";
Panel1.Controls.Add(button2);
button2.Click += new EventHandler(but_Click);void but_Click(object sender, EventArgs e)
{
TextBox1.Text = "OK";
}button2 viene inserito in Panel1, è l'evento but_Click che non esegue la funzione.
-
Quando si creano controlli al volo, non vengono archiviati nel viewstate, quindi quando si attiva un postback con uno di questi controlli, ASP.NET non sa cosa fare perché tali elementi vengono ricreati automaticamente al caricamento della pagina. Pertanto, gli eventi non ci sono più. Assicurati di creare questi pulsanti anche quando pubblichi post.
• Microsoft offre questo servizio gratuitamente, per aiutare gli utenti e aumentare il database dei prodotti e delle tecnologie. Il contenuto fornito “as is“ non comporta alcuna responsabilità da parte dell’azienda.
-
button2 viene inserito in Panel1, è l'evento but_Click che non esegue la funzione.
avvia la pagina col debug mettendo un breakpoint all'evento e vedi se viene eseguito.
Ma la textbox è sempre nel panel?
Paolo Pranzo
-
-
-
Il codice precedentemente postato viene eseguito al click di button1 (non dinamico):
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Drawing;namespace Asp
{
public partial class Button2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
Button button2 = new Button();button2.Text = "Dynamic";Panel1.Controls.Add(button2);
button2.Click += new EventHandler(But_Click);
}
void But_Click(object sender, EventArgs e)
{
TextBox1.Text = "OK";
}
}
}Ho comunque notato che se il codice della funzione:
protected void Button1_Click(object sender, EventArgs e)
lo inserisco in:
protected void Page_Load(object sender, EventArgs e)
l'evento void But_Click(object sender, EventArgs e) viene eseguito correttamente al click su button2 (dinamico) e lo stesso button2 non scompare dopo il click.
-
Ho comunque notato che se il codice della funzione:
protected void Button1_Click(object sender, EventArgs e)
lo inserisco in:
protected void Page_Load(object sender, EventArgs e)
l'evento void But_Click(object sender, EventArgs e) viene eseguito correttamente al click su button2 (dinamico) e lo stesso button2 non scompare dopo il click.
E' normale perchè l'evento But_Click provoca un postback e quindi il button2 "scompare" giustamente.
Dato che il button2 viene popolato solo all'evento But_Click, al ricaricamento della pagina (provocato dal postback) il button non viene aggiunto alla pagina.
Paolo Pranzo
- Proposto come risposta Yordan IvanovMicrosoft contingent staff, Moderator martedì 28 gennaio 2020 10:23
- Contrassegnato come risposta Evgin IsmailMicrosoft contingent staff martedì 4 febbraio 2020 11:39