关于Panel中哪些动态生成的CheckBox被选中的问题
本帖最后由 cyh027 于 2013-06-11 18:54:26 编辑
由于一些方面的原因需要在Panel中动态加入1,2,3三个CheckBox控件,现在我想在网页提交的时候提交得到如下字符串:
1选定的时候返回1; 2、3选定的时候返回23; 1、2、3选定的时候返回123。
控生成代码段如下:
for(int i=0;i<3;i++)
{
//以复选框的方式来添加
CheckBox cb1 = new CheckBox();
cb1.text=i.toString();
cb1.ID=i.toString();}
panel1.Controls.Add(cb1);
}
个人有一思路,就是遍历容器panel1中的所有控件,然后再返回
大至代码如下
protected void bt1_Click(object sender, EventArgs e)
{
foreach (Control C in Panel1.Controls)
{
// if (C.Checked==true)//原计划是在这里判断一下,但是出问题了。
test1.Text = test1.Text + c.ID;//test1为字符串输出控件
}
}
但问题出现了,我想通过 if (C.Checked==true)来计算哪些控件被选定了,但是发现Control没有Checked这个属性,请问各位高人,这里要怎么写啊?
------解决方案--------------------把你的Panel换成DataList,然后使用数据绑定方法(设计你的DataList模板)来显示n个CheckBox。
去学学DataList控件的使用吧。
------解决方案--------------------public partial class test : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//if (!Page.IsPostBack) //这里不能使用!Page.IsPostBack
//{
CheckBox cb1 = new CheckBox();
cb1.ID = "ckbox1";
cb1.Text = "1";
CheckBox cb2 = new CheckBox();
cb2.ID = "ckbox2";
cb2.Text = "2";
CheckBox cb3 = new CheckBox();
cb3.ID = "ckbox3";
cb3.Text = "3";
Panel1.Controls.Add(cb1);
Panel1.Controls.Add(cb2);
Panel1.Controls.Add(cb3