Pracuję w aplikacji sieci web przy użyciu ASP.NET z kodu bazowego jak C #. Mam tabelę dynamiczną zmianę rozmiaru w oparciu o powrocie z kwerendy SQL; z pola wyboru dodano trzeciej komórki każdego rzędu. Pole to jest przypisany identyfikator według indeksu i daty.
Gdy użytkownicy hit przesłać przycisk, kod powinien uzyskać wartość z każdego wiersza, który jest zaznaczone. Jednak, gdy zapętlenie poprzez wiersze, żadne z pól wyboru kiedykolwiek mieć wartość true dla Sprawdzone nieruchomości. Identyfikator nie ustępuje, ale wartość wyboru wydaje się być stracone.
Kod do dodawania pola wyboru:
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);
Kod do uzyskania wartości pola wyboru:
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());
}
}
}













