0

テーブルを動的に作成する Web ページを作成しました。表の列の 1 つは、ID(int) を持つチェックボックスです。次のように、SQL クエリですべてのチェックボックスの ID を使用したいと考えています。

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

すべてのチェック ボックスから ID のリストを取得する方法はありますか?

私はC#.Netを使用しています

チェックボックスを生成するために使用するコードのスニペットを次に示します。

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>

どうもありがとうございます!!!!!

4

2 に答える 2

0

このコードはテストされていませんが、基本的なロジックは正しいはずです。アイデアは、ページ上のすべてのコントロールをループして、ID が設定されたプレフィックスで始まるコントロールを選択することです。

まず、数値 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 だけを含むリストが作成されます。

于 2013-03-28T22:51:46.713 に答える
0

すべてのチェックボックスに同じ名前を付け、チェックボックスの値を 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.
}
于 2013-03-28T20:20:56.417 に答える