Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 动态创建复选框列表_C#_Dynamic_Checkboxlist - Fatal编程技术网

C# 动态创建复选框列表

C# 动态创建复选框列表,c#,dynamic,checkboxlist,C#,Dynamic,Checkboxlist,我正在尝试创建一个带有标题和一组复选框的动态菜单。所以输出应该是这样的:伪代码 标题1 -复选框1-复选框2-复选框3 标题2 -复选框1-复选框2-复选框3 我可以很好地取回标题,但我的复选框不是。见下文 关心 System.Web.UI.WebControl.CheckBoxList 公司与企业解决方案 System.Web.UI.WebControl.CheckBoxList 我意识到我正在返回一个数据集,我只是不知道如何处理它 BusinessUnit bu = new Business

我正在尝试创建一个带有标题和一组复选框的动态菜单。所以输出应该是这样的:伪代码

标题1

-复选框1-复选框2-复选框3

标题2

-复选框1-复选框2-复选框3

我可以很好地取回标题,但我的复选框不是。见下文

关心

System.Web.UI.WebControl.CheckBoxList

公司与企业解决方案

System.Web.UI.WebControl.CheckBoxList

我意识到我正在返回一个数据集,我只是不知道如何处理它

BusinessUnit bu = new BusinessUnit();    
DataSet businessNames = bu.ListBusinessUnitNames();    
ArrayList buNames = new ArrayList();

if (businessNames.Tables.Count > 0 && businessNames.Tables[0].Rows.Count > 0)
        {
            foreach (DataRow row in businessNames.Tables[0].Rows)
            {
                buNames.Add(row["BSUN_NAME"].ToString());
            }                
        }
        int counter = 1;
        foreach (string name in buNames)
        {
            Label lblName = new Label();
            lblName.ID = "unitName_" + counter;
            lblName.Text = name;

            CheckBoxList chkBoxes = new CheckBoxList();
            chkBoxes.ID = name + "Programs_" + counter;

            foreach (string item in buNames)
            {
                DataSet buPrograms = bu.ListBusinessUnitPrograms(item);
                foreach (DataRow row in buPrograms.Tables[0].Rows)
                {
                    chkBoxes.DataTextField = row[0].ToString();
                    chkBoxes.Text = chkBoxes.DataTextField;
                }
            }

            programs.InnerHtml += lblName.Text + chkBoxes;
            counter++;
        }

以下是在代码中执行此操作的机制:

ListItem LI1 = new ListItem("aaa");
ListItem LI2 = new ListItem("bbb");

LI1.Selected = true;
LI2.Selected = false;

chkBoxes.Items.Add(LI1);
chkBoxes.Items.Add(LI2);

假设您使用的是WebForms[aspx]

在代码示例中,语句programs.InnerHtml+=lblName.Text+chkBoxes;正在追加chkBoxes对象的default.ToString实现的值。要将复选框实际添加到页面,您需要某种容器控件,例如页面上的占位符,并通过phPlaceholder.Controls.AddchkBoxes将动态创建的控件附加到容器的控件集合中