【发布时间】:2013-04-27 08:56:18
【问题描述】:
我一直在使用 ASP.NET 开发一个 Web 应用程序,其代码库为 C#。我有一个动态表,它根据 SQL 查询的返回调整大小;在每行的第三个单元格中添加了一个复选框。根据索引和日期为复选框分配一个 ID。
当用户点击提交按钮时,代码应该从被检查的每一行中获取一个值。但是,在遍历行时,没有一个复选框的 Checked 属性值为 true。 ID 仍然存在,但复选框的值似乎丢失了。
添加复选框的代码:
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);
获取复选框值的代码:
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());
}
}
}
【问题讨论】: