如何获取复选框id列表

本文关键字:复选框 id 列表 获取 何获取 | 更新日期: 2023-09-27 18:06:28

我创建了一个动态创建表的网页。表中的一列是一个带有ID(int)的复选框。我想在SQL查询中使用所有复选框的id,如下所示:

select * 
from table 
where ID in (1,2,3,4)

是否有一种方法可以从所有选中的框中获得id列表?

我正在使用c#。净

下面是我用来生成复选框的代码片段:
foreach (DataRow dr in dt.Rows)
{
    string Compatible_Controls = (
        "<tr>" +
        "<td><input type='CheckBox' ID='" +(dr["id"]) + "' /></td>" +
        "<td>" + (dr["Control_Name"]) + "</td>" +
        "<td>" + (dr["Control_Statement"]) + "</td>" +
        "<td>" + (dr["Regulation_type"]) + "</td>" +
        "</tr> );

结果如下:

<tr>
    <td><input type='CheckBox' ID='3' /></td>
    <td>xxxxxx</td>
    <td>xxxxxxxxx</td>
    <td>xxxxxxxx</td>
</tr>

非常感谢!!!!!

如何获取复选框id列表

这段代码是未测试的,但基本逻辑应该是正确的。其思想是循环遍历页面上的所有控件,挑选出ID以set前缀开头的控件。

首先,在数字id前面加一个前缀:

string ID_Prefix = "MyCheckbox_";
string Compatible_Controls = (
                 "<tr>" +
                      "<td><input type='CheckBox' ID='" + ID_prefix 
                                + (dr["id"]) + "' /></td>" +
                      "<td>" + (dr["Control_Name"]) + "</td>" +
                      "<td>" + (dr["Control_Statement"]) + "</td>" +
                      "<td>" + (dr["Regulation_type"]) + "</td>" +
                "</tr> );

将创建如下HTML:

<td><input type='CheckBox' ID='MyCheckbox_3' /></td>

当你想解析页面时调用这个函数:

List<string> GetMyCheckboxes(ControlCollection coll, List<string> ids)
{
    foreach (Control ctl in coll)
    {
        if (ctl.ID.StartsWith(ID_Prefix))
            ids.Add(ctl.ID.Substring(ID_Prefix.Length)); // only take the number
        if (ctl.Controls.Count > 0)
            ids = GetInputs(ctl.Controls, ids);
    }
    return ids;
}

这样写:

List<string> ids = GetMyCheckboxes(Page.Controls, new List<string>());

您将得到一个仅包含id的列表。

如果你将所有的复选框命名为相同的东西,将复选框的值设置为id,并让你的控制器接受一个int类型的列表,它将返回被选中的复选框

:

视图:

<input type='checkbox' name='check' value='1'>
<input type='checkbox' name='check' value='2'>
<input type='checkbox' name='check' value='3'>
<input type='checkbox' name='check' value='4'>

控制器:

public ActionResult CheckBoxes(IList<int> checkIds)
{
  //checkIds will contain the "value" of all the checkboxes that are checked when the form is submitted.
}