So che questa domanda è stata fatta migliaia di volte, e ho già faticato prima, ma per qualche motivo, non riesco a realizzare ciò che voglio realizzare ... I avere un LinkButton aggiunto dinamicamente che, una volta fatto clic, aggiungerà dinamicamente un controllo (in questo esempio, una casella di testo) allo stesso pannello. L'intento è quello di aggiungere continuamente tanti controlli quanti sono stati cliccati su LinkButton (ad esempio, faccio clic una volta, una casella, poi un altro clic mi darà 2 caselle, un altro clic aggiunge un terzo). Nel seguente codice, utilizzo la data e l'ora correnti serializzate per creare un ID univoco per ciascun controllo casella di testo.ASP.NET ha creato dinamicamente controlli e postback
Quando eseguo il codice, facendo clic su "Aggiungi filtro" si genera una nuova casella di testo, ma una volta cliccato di nuovo ne creerà uno nuovo e lo smaltirà. Invece, voglio mantenere la casella di testo precedente e tutti i dati inviati al suo interno.
Il vostro aiuto è apprezzato.
Nella aspx:
<asp:Panel ID="pnlFilter" runat="server">
</asp:Panel>
Negli aspx.cs:
protected void Page_Init(object sender, EventArgs e)
{
LinkButton lb = new LinkButton();
lb.ID = "lbAddFilter";
pnlFilter.Controls.Add(lb);
lb.Text = "Add Filter";
lb.Click += new EventHandler(lbAddFilter_Click);
}
void lbAddFilter_Click(object sender, EventArgs e)
{
TextBox tb = new TextBox();
tb.ID = "tb" + DateTime.Now.ToBinary().ToString();
pnlFilter.Controls.Add(tb);
}
Cosa faresti in una situazione in cui i questionari (sondaggi) vengono creati in una determinata applicazione e presentati attraverso un servizio web il sito Web recupera un sondaggio e ne rende i campi? in tal caso la creazione dinamica di contenuto è l'unica opzione adatta no? – Sander
Sì, la creazione dinamica del contenuto è in ordine, ma non deve essere incrementale come stavo cercando di fare; Presumo che il tuo servizio Web restituisca tutti i risultati ogni volta, nel qual caso li hai ripetuti tutti in ogni momento. Con l'uso di viewstate e il caching, la tua performance dovrebbe essere piuttosto buona. –
Sei un genio. Stavo cercando di ottenere la stessa cosa dell'OP ma questo mi ha fatto capire che posso invece aggiungere più istanze di controllo, posso solo mostrare il nuovo controllo in una finestra modale e su "salva" nella sua modal, impegnarsi nell'archivio dati e quindi caricarlo sulla pagina molto facilmente. Mille grazie. Ho passato 3 giorni e stasera a cercare di capirlo. –