Jeg har jobbet på en web-app med ASP.NET med kodebasen som C #. Jeg har en dynamisk tabell som endrer basert på en retur fra en SQL-spørring; med en avkrysningsboksen tilsatt i den tredje cellen i hver rad. Den boksen er tildelt en ID i henhold til en indeks og datoen.
Når brukere treffer send-knappen, er koden skulle få en verdi fra hver rad som blir kontrollert. Men når looping gjennom radene, ingen av boksene noensinne har en verdi på sant for Sjekket eiendom. ID vedvarer, men verdien av boksen ser ut til å være tapt.
Kode for å legge boksene:
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);
Koden for å få boksen verdi:
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());
}
}
}













