Ciao ragazzi,
sto ingranando sulla programmazione web ma ho ancora qualche intoppo e in attesa dell'arrivo del libro Microsoft ASP.NET 2.0 Programmazione Avanzata per approfondire le mie conoscenze chiedo qualche info:
1. Ho creato una classe banalissima che deriva da uno usercontrol:
public partial class UCwithLB : System.Web.UI.UserControl
{
protected Int32 nLinks = 0;
public Int32 Links
{
get { return nLinks; }
set {
nLinks = value;
ViewState["links"] = nLinks;
}
}
protected void myClick(object sender, EventArgs e)
{
((LinkButton)sender).Text += " <- THIS!!!";
}
protected void MakeControl()
{
Table tb;
TableRow tr;
TableCell tc;
LinkButton lb;
if (nLinks == 0)
return;
tb = new Table();
tr = new TableRow();
for (Int32 x = 0; x < nLinks; x++)
{
tc = new TableCell();
lb = new LinkButton();
lb.Text = "Link Nr. " + ( x + 1 ).ToString().PadLeft(3, '0');
lb.Click += new EventHandler(this.myClick);
tc.Controls.Add(lb);
tr.Cells.Add(tc);
}
tb.Rows.Add(tr);
this.Controls.Add(tb);
}
protected void Page_Load(object sender, EventArgs e)
{
if (ViewState["links"] != null)
nLinks = (Int32)ViewState["links"];
this.MakeControl();
}
}
in questa classe ho una variabile nLinks che mi indica il numero di link da creare runtime.
2. Ho creato una banalissa webform con 4 tasti e il mio controllo:
Ora sui vari click dei vari controlli vado ad assegnare il numero di links da creare:
protected void btn1Link_Click(object sender, EventArgs e)
{
UCwithLB1.Links = 1;
}
protected void btn2Link_Click(object sender, EventArgs e)
{
UCwithLB1.Links = 2;
}
protected void btn3Link_Click(object sender, EventArgs e)
{
UCwithLB1.Links = 3;
}
protected void btn4Link_Click(object sender, EventArgs e)
{
UCwithLB1.Links = 4;
}
Quello che accade è:
1. Load della pagina e del mio controllo
2. Evento di Click
io invece mi aspettavo il contrario e in effetti per avere il comportamento desiderato devo cliccare due volte sul tasto...
Come devo fare?
Capisco che web non è programmazione windows, datemi qualche dritta e/o suggerimento...
Grazie 1K a tutti
Campioni del mondo!!!