Domanda

Ho diversi controlli utente, diciamo A, B, C e D.Sulla base di alcune input casuale, ho bisogno di generare una combinazione di questi.Per es.se l'ingresso è 2a3d1a2c Ho bisogno di mostrare due l'Una, 3 D dopo di che, una volta, etc.

Ho anche bisogno di stabilizzare clientid in modo per loro di funzionare correttamente.Perché ognuno di questi controlli di utilizzare i loro ClientID proprietà per raccogliere l'input su se stessi.Per es.controllo utente Una genera internamente un input di nome this.ClientID + "$input1", e raccoglie il suo ingresso dalla richiesta come Request[this.ClientID + "$input1"].Poiché non ci possono essere più di uno, ciascuno deve avere la stessa (unique) ClientID dopo il postback al fine di ottenere gli ingressi corretti dalla richiesta.

È stato utile?

Soluzione

Per aggiungere controlli in modo dinamico, è possibile utilizzare un pannello come un luogo di titolare, dire

<asp:Panel ID="ControlPlaceholder" runat="server" />

Quindi, sul lato server, è possibile aggiungere oggetti ad esso in questo modo:

int controlCount = 0;

...

TextBox newTextBox = TextBox();
newTextBox.ID = "ctl_" + controlCount++;
ControlPlaceholder.Controls.Add(newTextBox);

Se si aggiungono i controlli durante il vostro evento Page_Load e utilizzare un coerente metodo di generazione di controlli' Id (come un semplice conteggio di cui sopra), quindi qualsiasi viewstate o associazioni eventi sarà re-bound per il diritto oggetto su un postback.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top