Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.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#_Asp.net - Fatal编程技术网

C# 如何将动态添加的复选框选中的项目添加到列表中?

C# 如何将动态添加的复选框选中的项目添加到列表中?,c#,asp.net,C#,Asp.net,我根据所选站点动态创建复选框。因此,如果一个站点有4个连接到它的喷嘴,代码将创建4个复选框,如果它有2个,则只会创建2个复选框 我需要根据正在检查的喷嘴提取一份报告。因此,我的想法是将选中的项添加到列表中,然后遍历该列表,并对找到的每个id执行查询。因此,它可以提取所选每个喷嘴的所有记录 下面是我用来创建喷嘴复选框的代码。它们正在被重新创造!ispost-back方法。我只是不知道如何获取选中的项目并将其添加到列表中。我想我可以在选中或取消选中它们时添加或删除它们,或者循环检查每个复选框,只将选

我根据所选站点动态创建复选框。因此,如果一个站点有4个连接到它的喷嘴,代码将创建4个复选框,如果它有2个,则只会创建2个复选框

我需要根据正在检查的喷嘴提取一份报告。因此,我的想法是将选中的项添加到列表中,然后遍历该列表,并对找到的每个id执行查询。因此,它可以提取所选每个喷嘴的所有记录

下面是我用来创建喷嘴复选框的代码。它们正在被重新创造!ispost-back方法。我只是不知道如何获取选中的项目并将其添加到列表中。我想我可以在选中或取消选中它们时添加或删除它们,或者循环检查每个复选框,只将选中的喷嘴添加到列表中

aspx:


喷嘴:
代码隐藏:(标签仅用于间距)

protectedvoid Selected\u SelectedIndexChanged(对象发送方,事件参数e)
{
getsitenzone();
}
void getsitenzone()
{
如果(Selected.SelectedValue!=“全部”)
{
如果(Type.SelectedValue==“喷嘴”)
{
Table Table=新表();
表1.宽度=200;
TableCell=新的TableCell();
列表检查=Helpers.get喷嘴(Selected.SelectedValue);
//创建新行、单元格和复选框
TableRow行=新TableRow();
foreach(检查中的var项目)
{
复选框cb=新复选框();
标签lb=新标签();
lb.宽度=5;
//设置一些复选框属性
cb.Text=“喷嘴”+项目;
cb.ID=“389;”+项目;
cb.TextAlign=TextAlign.Left;
//将复选框添加到单元格中
cell.Controls.Add(cb);
单元格.控件.添加(lb);
//将单元格移到第一行
行.控件.添加(单元格);
}
//把这一行放到桌子上
table.Controls.Add(行);
//最后将表添加到页面中
controleplaceholder.Controls.Add(表);
}
}
其他的
{
typeNoz.Visible=false;
}

问题在于您在页面中添加的控件没有维护viewstate如何使它们维护viewstate?
                        <tr style="color: white" id="typeNoz" visible="false" runat="server">
                            <td>Nozzle(s):
                            </td>
                            <td id="checkboxes" runat="server">
                                <asp:PlaceHolder runat="server" ID="controleplaceholder" />
                            </td>
                        </tr>
        protected void Selected_SelectedIndexChanged(object sender, EventArgs e)
        {
            getSiteNozzle();
        }

        void getSiteNozzle()
        {
            if (Selected.SelectedValue != "All")
            {
                if (Type.SelectedValue == "Nozzles")
                {
                    Table table = new Table();
                    table.Width = 200;
                    TableCell cell = new TableCell();
                    List<string> check = Helpers.getNozzle(Selected.SelectedValue);
                    //create a new row, cell and checkbox
                    TableRow row = new TableRow();

                    foreach (var item in check)
                    {
                        CheckBox cb = new CheckBox();
                        Label lb = new Label();
                        lb.Width = 5;
                        //set some checkbox properties
                        cb.Text = "Nozzle " + item;
                        cb.ID = "_" + item;
                        cb.TextAlign = TextAlign.Left;
                        

                        //add the checkbox to the cell
                        cell.Controls.Add(cb);
                        cell.Controls.Add(lb);

                        //the cell to the row
                        row.Controls.Add(cell);
                    }

                    //and the row to the table
                    table.Controls.Add(row);
                    //finally add the table to the page
                    controleplaceholder.Controls.Add(table);
                }
            }
            else
            {
                typeNoz.Visible = false;
            }