动态创建Tablerow / Tablecell / Checkbox。 期望用户选中/取消选中框,然后单独执行btn。 无论我把我的审讯代码放在哪里,我总是得到“假”的结果。 我把它简化为下面测试项目中最简单的形式。 这个询问代码错误,索引超出范围,因为编程行没有 用系统变量传输。 硬编码行内的“硬编码”复选框表现得如我所料,所以我遗漏了一些非常基本的东西。 谢谢 鲍勃
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
CheckState();
else
{
MakeARow();
}
}
private void MakeARow()
{
TableRow r = new TableRow();
TableCell c = new TableCell();
CheckBox k = new CheckBox();
c.Controls.Add(k);
r.Cells.Add(c);
Table1.Rows.Add(r);
}
private void CheckState()
{
Table t = (Table) Session["MyTable"];
if (((CheckBox) t.Rows[0].Cells[0].Controls[0]).Checked)
this.Label1.Text = "Checked";
else
{
this.Label1.Text = "UnChecked";
}
}
protected void Button1_Click(object sender, EventArgs e)
{
Session["MyTable"] = Table1;
}
答案 0 :(得分:0)
您必须在Page_Load事件之前创建行,即在Page_Init中创建。有关更多详细信息,请查看ASP.NET页面生命周期的文档 - http://msdn.microsoft.com/en-us/library/ms178472.aspx