Salve a tutti,
da questa mattina mi sto cimentando nella creazione di un custom control.
In effetti nei milioni di esempi scaricati da internet o dai manuali, nessuno mi ha dato la possibilità di gestire il viewstate o almeno avrebbero dovuto ma mi sa che mi perdo qualcosa per strada.
Posto un esempio che ho scritto per poi magari avere un consiglio:
IL SEGUENTE è IL CODICE CHE GESTISCE L'EVENTO ONLOAD DELLA AGINA ASPX DOVE è CONTENUTO IL MIO CONTROLLO "CONFIGREPEATER" E DEFINISCO DELLE PROPRIETà.
NEL FORM DELLA PAGINA ASPX C'è ANCHE UN PULSANTE PER IL SUBMIT.
Codice PHP:
<script runat="server">
protected void Page_Load(object sender, EventArgs e)
{
ConfigRepeater cf = new ConfigRepeater();
if (!Page.IsPostBack)
{
cf.Ripetizioni = 5;
cf.Messaggio = "Prova2";
}
form1.Controls.Add(cf);
}
</script>
SEGUE LA CLASSE DEL CUSTOM CONTROL:
UNA VOLTA ISTANZIATO IL CONTROLLO, IMPOSTO LE DUE PROPRIETà, CLICCO SUL SUBMIT E I VALORI MEMORIZZATI NELLE VIEWSTATE VENGONO PERSI, MENTRE DOVREBBERO RESTARE MEMORIZZATE NEL CONTROLLO.. COSA SBAGLIO?
Codice PHP:
public class ConfigRepeater : WebControl
{
public ConfigRepeater()
{
}
public int Ripetizioni
{
get { return (int)ViewState["Ripetizioni"]; }
set { ViewState["Ripetizioni"] = value; }
}
public string Messaggio
{
get { return (string)ViewState["Messaggio"]; }
set { ViewState["Messaggio"] = value; }
}
protected override void Render(HtmlTextWriter writer)
{
base.RenderContents(writer);
for (int i = 0; i < Ripetizioni; i++)
{
writer.Write(Messaggio + "
");
}
}
}