1

私は通常、asp: コントロールを避け、常に純粋な html コントロールを使用しますrunat="server"。ただし、これらの asp:controls を使用して構築されたシステムがあります。建てられた道を行くしかない。

asp:CheckBoxListここに問題があります。コントロールとをデータバインドするDataTextField="Name"DataValueField="ID"、各入力チェックボックスは異なる名前を使用し、選択したチェックボックス ID が必要な場合はcheckboxlist、選択した値を読み取るために全体をループする必要があります。

これらすべてを使用してinput name="Types"読み取るRequest.Form["Types"]と、選択したすべての ID 値をコンマ「,」で区切って取得できます。このようにして、その中のすべてのアイテムをループすることを避けることができcheckboxlistます。input checkboxそれらが同じ名前を使用できるようにする方法はありますか?

ありがとう。

編集:

私はこれを試しましたが、うまくいきません

ChkPropertyFeatures.Attributes.Add("name", "Types")

同じ名前を使用したい理由は、バックエンドでのループを避けるためだけではありません。名前属性でこれらすべてのチェックボックスを選択するには、jquery を使用する必要があります。はい、クラス名で選択できることはわかっていますが、Checkboxlist コントロールによって生成されたチェックボックスの name 属性を変更できるかどうか疑問に思っていました。

4

2 に答える 2

1

サーバー側から Web コントロールの名前を設定することはできません。必要に応じて、JavaScript を使用して name 属性を変更できます。

$("input[type='checkbox']").attr("name", "Types");

于 2012-07-30T01:52:10.443 に答える
0

ACheckBoxListは、リストの各チェックボックスをラップするスパンを生成します。

<table id="CheckBoxList1">
    <tr>
        <td><span name="chenchi"><input id="CheckBoxList1_0" type="checkbox" name="CheckBoxList1$0" value="Uno" /><label for="CheckBoxList1_0">Uno</label></span></td>
    </tr><tr>
        <td><span name="chenchi"><input id="CheckBoxList1_1" type="checkbox" name="CheckBoxList1$1" checked="checked" value="Dos" /><label for="CheckBoxList1_1">Dos</label></span></td>
    </tr><tr>
        <td><span name="chenchi"><input id="CheckBoxList1_2" type="checkbox" name="CheckBoxList1$2" checked="checked" value="Tres" /><label for="CheckBoxList1_2">Tres</label></span></td>
    </tr>
</table>

次の方法で、各スパンの名前を動的に変更できます。

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    If Not Page.IsPostBack Then
        For Each c As ListItem In Me.CheckBoxList1.Items
                   c.Attributes("name") = "chenchi"
        Next
    End If
End Sub

次に、jquery を使用して、各チェックボックスがオンになっているかどうかを確認できます。

var sps = $('#CheckBoxList1').find('[name="chenchi"]');
sps.each(function (i) {
       alert( $(this).find('input:checkbox').attr('checked') ); 
});

あなたの質問をよく理解したと思います。

于 2012-07-30T07:26:48.613 に答える