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());
}
}
}













