Asp.Net程序化创建复选框控件确定检查状态

时间:2011-08-28 11:00:07

标签: asp.net checkbox

动态创建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;
    }

1 个答案:

答案 0 :(得分:0)

您必须在Page_Load事件之前创建行,即在Page_Init中创建。有关更多详细信息,请查看ASP.NET页面生命周期的文档 - http://msdn.microsoft.com/en-us/library/ms178472.aspx