我一直在从webservice返回的信息中创建一个复选框列表。复选框按预期呈现,但是当我尝试然后读取它们以检查它们是否已被选中时,代码无法找到它们。
我创建了一个名为planList
的面板,并且代码循环创建了动态的框列表 - 然后在按下按钮时,它应该遍历复选框列表以查看用户是否选择了任何值。除非动态创建,否则代码似乎不会拾取任何复选框。有人能帮忙吗?目前我只是想拿出一个ID,如果它拿起一个复选框
代码:
planList.Controls.Add(new LiteralControl("<h2>Plan List </h2>"));
foreach (string[] ar in ws.planS(this.txtGetDetails.Text)) {
CheckBox cb = new CheckBox();
cb.Text = ar[1].ToString();
cb.ID = ar[0];
planList.Controls.Add(cb);
planList.Controls.Add(new LiteralControl("<b> Application ID: " + ar[2] + "</b>"));
planList.Controls.Add(new LiteralControl("<br>"));
}
protected void Uploadbutton_Click1(object sender, System.EventArgs e) {
foreach (Control c in planList.Controls) {
CheckBox chx = c as CheckBox;
if (chx != null) {
var planid = c.ID;
}
}
}
答案 0 :(得分:0)
您必须覆盖CreateChildControls
方法并在其中添加复选框。这样,您将在加载ViewState之前创建控件树,该ViewState包含已检查其中一个的数据。