Potresti utilizzare un indice che salvie nella cache del viewstate, ad ogni click viene incrementato e successivamente ti fornisce un numero che ti servirà ad identificare l'ipotetica TextBox[i] da visualizzare.
Per essere più chiaro: supponi di avere 5 textbox con i seguenti id:
TextBox1
TextBox2
TextBox3
TextBox4
TextBox5
Ora, tutte hanno la proprietà Visible="false";
poi hai il tuo bottone che è collegato al seguente metodo per l'OnClick:
codice:
protected void btnClick(object sender, EventArgs e)
{
int v = 0;
if(ViewState["Indice"] != null)
v = (int)ViewState["Indice"];
else v = 1;
Control ctrl = this.FindControl(string.Format("TextBox{0}", indice);
if(ctrl != null)
{
ctrl.Visible=true
indice++;
}
ViewState["Indice"] = indice;
}
Spero sia facile capire il suo funzionamento:
1. dichiara un indice
2. verifica che nel viewstate sia presente un dato relativo ad esso
3. se c'è lo imposta per la variabile dichiarata, in caso contrario imposta l'indice = 1 in quando è la prima volta che stiamo utilizzando il tasto ed il ViewState non è stato utilizzato.
4. Utilizza il metodo FindControl presente nella pagina per cercare un controllo che ha un particolare id (ogni elemento eredita da Control)
5. se lo trova lo visualizza.