我尝试使用后面的代码创建一个复选框控件,并且有一个按钮可以显示该复选框在单击时的状态(true
或false
),但问题是复选框始终未选中(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);
}
}
答案 0 :(得分:0)
将loadCheckBox()
移至if (!IsPostBack)
之外,并从loadCheckBox()
移除Button1_Click
。需要在每个页面加载时添加动态添加的控件。在您的情况下,PostBack上不存在CheckBox,因此它是错误的。
答案 1 :(得分:0)
每次发送回复时,都会创建Default
页面的新实例,chkBox
也是如此。这就是为什么它永远不会被检查。
在Button1_Click
处理程序中,您希望获取Table1
最后一行的第一个单元格并读取其Checked
属性。