C# 从数组中动态创建复选框,然后遍历它们以检查选定的
我已经从一个Web服务返回的信息中创建了一个复选框列表。复选框按预期呈现,但当我尝试然后读取它们以检查它们是否已被选中时,代码无法找到它们 我创建了一个名为C# 从数组中动态创建复选框,然后遍历它们以检查选定的,c#,asp.net,checkbox,C#,Asp.net,Checkbox,我已经从一个Web服务返回的信息中创建了一个复选框列表。复选框按预期呈现,但当我尝试然后读取它们以检查它们是否已被选中时,代码无法找到它们 我创建了一个名为planList的面板,并让代码循环创建框的动态列表-然后在按下按钮时,它应该遍历复选框列表,以查看用户是否选择了任何值。除非动态创建,否则代码似乎不会选中任何复选框。有人能帮忙吗?目前,我只是试图拉出ID,如果它拿起一个复选框 代码: planList.Controls.Add(新的文字控件(“计划列表”); foreach(ws.plan
planList
的面板,并让代码循环创建框的动态列表-然后在按下按钮时,它应该遍历复选框列表,以查看用户是否选择了任何值。除非动态创建,否则代码似乎不会选中任何复选框。有人能帮忙吗?目前,我只是试图拉出ID,如果它拿起一个复选框
代码:
planList.Controls.Add(新的文字控件(“计划列表”);
foreach(ws.planS中的字符串[]ar(this.txtGetDetails.Text)){
复选框cb=新复选框();
cb.Text=ar[1].ToString();
cb.ID=ar[0];
计划表.控制.添加(cb);
planList.Controls.Add(新的LiteralControl(“应用程序ID:+ar[2]+”));
planList.Controls.Add(新的LiteralControl(“
”);
}
受保护的无效上载按钮\u Click1(对象发送者,System.EventArgs e){
foreach(planList.Controls中的控件c){
复选框chx=c作为复选框;
如果(chx!=null){
var planid=c.ID;
}
}
}
您必须覆盖CreateChildControls
方法并在那里添加复选框。这样,您就可以在加载ViewState之前创建控件树,其中包含选中的控件的数据。何时添加复选框?我已经编辑了您的标题。请看“”,其中的共识是“不,他们不应该”。谢谢我在页面加载后添加了它们-已经将它们添加到页面加载中,现在可以阅读它们了。
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;
}
}
}