为什么我的复选框控件总是未选中(false)?

时间:2016-10-17 16:44:51

标签: c# asp.net

我尝试使用后面的代码创建一个复选框控件,并且有一个按钮可以显示该复选框在单击时的状态(truefalse),但问题是复选框始终未选中(false)。

有人可以解决这个问题吗?谢谢!

我需要在loadCheckBox()点击事件中保留Button才能完成某些操作。

public partial class Default : System.Web.UI.Page
{
    CheckBox chkBox = new CheckBox();

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack) loadCheckBox();
    }

    protected void Button1_Click(object sender, EventArgs e)
    {
        Response.Write(chkBox.Checked); // <<< always shows "False"
        loadCheckBox();
    }

    public void loadCheckBox()
    {
        Table1.Rows.Clear();

        var tRow = new TableRow();
        var cell = new TableCell();

        cell.Controls.Add(chkBox);
        tRow.Cells.Add(cell);
        Table1.Rows.Add(tRow);
    }
}

2 个答案:

答案 0 :(得分:0)

loadCheckBox()移至if (!IsPostBack)之外,并从loadCheckBox()移除Button1_Click。需要在每个页面加载时添加动态添加的控件。在您的情况下,PostBack上不存在CheckBox,因此它是错误的。

答案 1 :(得分:0)

每次发送回复时,都会创建Default页面的实例,chkBox也是如此。这就是为什么它永远不会被检查。

Button1_Click处理程序中,您希望获取Table1最后一行的第一个单元格并读取其Checked属性。