Buongiorno a tutti,
sono due giorni che mi scervello e non riesco a dare una spiegazione logica a questo problema:
Ho un ciclo for che crea una listview e carica il LayoutTemplate.
All'usercontrol del Layout Template viene passato il valore di "j", che rappresenta il numero di cicli.
Nel codebehind dell'usercontrol (rlt.ascx.cs):
Problema: la variabile marmar.j ha sempre valore "3", il valore finale del ciclo for.
Se prima di caricare il template aveva valore "1", nell'usercontrol ha valore "3".
Non capisco la logica.
Qualcuno mi potrebbe aiutare?
Grazie mille in anticipo,
Marco
sono due giorni che mi scervello e non riesco a dare una spiegazione logica a questo problema:
Ho un ciclo for che crea una listview e carica il LayoutTemplate.
All'usercontrol del Layout Template viene passato il valore di "j", che rappresenta il numero di cicli.
Codice:
for (j = 1; j <= 3; j++)
{
......
lv = new ListView();
lv.ID = "LVprogram" + j;
lv.DataSourceID = ds.ID;
lv.ItemPlaceholderID = "rlt$itemPlaceholder";
...poi associo gli ItemDataBound, LayoutCreated, ItemTemplate....
// memorizzo il valore di "j" in una variabile globale di App_Code
// per passarlo all'user control:
marmar.j = j;
// carico l'usercontrol
lv.LayoutTemplate = LoadTemplate("~/rassegne/rlt.ascx");
PHprograms.Controls.Add(lv);
lv.DataBind();
Nel codebehind dell'usercontrol (rlt.ascx.cs):
Codice:
protected void Page_Load(object sender, EventArgs e)
{
if (marmar.j == 1)
sx = "_a";
else if (marmar.j == 2)
sx = "_b";
.....
Problema: la variabile marmar.j ha sempre valore "3", il valore finale del ciclo for.
Se prima di caricare il template aveva valore "1", nell'usercontrol ha valore "3".
Non capisco la logica.
Qualcuno mi potrebbe aiutare?
Grazie mille in anticipo,
Marco