<asp:Repeater runat="server" ID="Repeater1" OnItemDataBound="countryDataBound">
<HeaderTemplate>
</HeaderTemplate>
<ItemTemplate>
<div class="accordion">
<span><h3><%# Eval("key") %>
<div class="panelCountry">
<input type="checkbox" runat="server" class="chbSelectAll"/><label>SelectAll</label>
<asp:CheckBoxList
ID="chbListCountries"
CssClass="chbList"
RepeatColumns="4"
RepeatDirection="Horizontal"
DataTextField ="Name"
DataValueField = "CountryCode"
runat="server">
<asp:ListItem></asp:ListItem>
</asp:CheckBoxList>
</div>
</div>
</ItemTemplate>
<FooterTemplate>
</FooterTemplate>
</asp:Repeater>
大陸別にグループ化された世界のすべての国のリピーターを含むダイアログがあります。各大陸はjqueryアコーディオンで区切られています。各アコーディオンの内側には、国のチェックボックスのリストがあり、上部にはすべてを選択する機能を持つチェックボックスがあります。私は、すべてを選択することに関連するラベルを持っている必要があります。これは私がラベルをクリックすると、チェックボックスをすべて選択するようにする必要があることを意味します。 私はしかし、私はそれだけで、この特定のCheckBoxListのチェックボックスを選択し、特定のラベルをクリックしたときになるように正しくチェックボックスをターゲットにする方法を見つけ出すことはできませんリピーター内のチェックボックスのラベルを作成する
<label for="IDHERE">Select all</label>
を検討しました。
"select all"チェックボックスにIDを作成すると、他の7つのIDと一意であるため、ラベルをクリックすると、それぞれのアコーディオンのチェックボックスが選択されます。 checboxがクリックされた参照用の 、このJavaScriptの実行は:
$(document).on('change', '.chbSelectAll', function (e) {
var selectAllValue = $(this).prop('checked')
var panel = $(this).closest('.panelCountry');
var checkboxes = panel.find('input[type=checkbox]:not(.chbSelectAll)');
checkboxes.prop('checked',selectAllValue);
});
私はアイテムインデックスを試してみます。私は実際にはasp:checkboxを試しました。何らかの理由で何が起きるかは、チェックボックスがチェックボックスとラベルを含む範囲に分割されることです。私はどのようにこのスパン内のjavascriptのチェックボックスをターゲットにしてリストのすべてのチェックボックスにチェックを入れるのか分からなかった。 – Carpathea
itemindexはすばらしい感謝をこめました:)この答えは正しいとマークしました!私はまだASPのチェックボックスがスパンなどに分割される理由に興味がありますが、私は一緒に取り組むべき仕事を持っています!助けてくれてありがとう – Carpathea
これはaspnet webformsがチェックボックスコントロールを作成する方法です。コントロールを作成するデフォルトの方法を上書きする独自のクラスを作成することもできますが、これははるかに複雑です。 – VDWWD