Dinamice Tabelul Casetele de selectare care nu au un „Verificat“ valoare reală

voturi
0

Am lucrat la o aplicație web folosind ASP.NET cu baza de cod ca C #. Am un tabel dinamic care redimensionează bazat pe o revenire dintr-o interogare SQL; cu o casetă de selectare a adăugat în a treia celulă din fiecare rând. Caseta de selectare este atribuit un ID în conformitate cu un index și data.

Atunci când utilizatorii lovit Trimiteți butonul, codul se presupune că pentru a obține o valoare de la fiecare rând care este verificat. Cu toate acestea, atunci când looping prin rânduri, nici una dintre casetele de selectare au vreodată o valoare adevărată pentru proprietatea Înregistrate. ID-ul persistă, dar valoarea caseta de selectare pare a fi pierdut.

Cod pentru adăugarea casetele de selectare:

cell = new TableCell();  
CheckBox cb = new CheckBox();  
cell.ApplyStyle(TS);  
cb.ID = index.ToString() +   +  lstDate.SelectedItem.Text.ToString();  

if (reader[RestartStatus].ToString() == 0)  
{  
     cb.Checked = false;  
     cb.Enabled = true;  
}  
else  
{  
     cb.Checked = true;  
}  
cell.Controls.Add(cb);  

Codul pentru a obține valoarea checkbox:

for (int i = 0; i < CompTable.Rows.Count; i++)  
{  
    int t3 = CompTable.Rows[i].Cells[2].Controls.Count;  
    Control temp = null;  
    if (t3 > 0)  
    {  
        temp = CompTable.Rows[i].Cells[2].Controls[0];  
    }  

    string t2 = i.ToString() +   + lstDate.SelectedItem.Text.ToString();  
    if ( temp != null && ((CheckBox)temp).ID == i.ToString() +   +   lstDate.SelectedItem.Text.ToString())  
    {  
        //Separated into 2 if statements for debugging purposes  
        //ID is correct, but .Checked is always false (even if all of the   boxes are checked)  
        if (((CheckBox)temp).Checked == true)  
        {  
            tlist.Add(CompTable.Rows[i].Cells[0].Text.ToString());  
        }  
    }  
}
Întrebat 04/08/2009 la 16:17
sursa de către utilizator
În alte limbi...                            


1 răspunsuri

voturi
0

Cea mai probabilă cauză pentru controale dinamice nu au o valoare este că au fost fie create după Viewstate a fost încărcat sau citit înainte.

În general vorbind, ar trebui să fie create controale dinamice în timpul evenimentului PageInit, și a citit în timpul sau după eveniment Căile.

Publicat 04/08/2009 la 16:26
sursa de către utilizator

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more