如何获取复选框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以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.
}