0

次の画像を見てください。その中にいくつかのテーブルがあり、各テーブルには SelectAll として機能する checkBox があります (まだ実装されておらず、残りのチェックボックスを選択する必要があります。

ここに画像の説明を入力

これは、私のかみそりビューを含むコードです。

for (int i = 0; i < Model.Classes.Count; i++) {
<span>@Model.Classes[i].Name</span>
<table class="monitor-class-table">
    <tr>
        <th>
            @Html.CheckBox("selectAll-" + Model.Classes[0].ClassId)
        </th>
        <th>
            Online
        </th>
    </tr>

@for (int j = 0; j < Model.Classes[i].Students.Count; j++) {
    <tr>
        @Html.HiddenFor(model => ...)
        <td>
            @Html.CheckBoxFor(model => model.Classes[i].Students[j].Share)
        </td>
        <td>
            @Html.LabelFor(model => ...)
        </td>
    </tr>
}
</table>

JQUERY の使用を開始する方法がよくわかりません (これが最適なオプションだと思います)。チェックボックスを選択および選択解除します。

4

3 に答える 3

2

たとえば、次のようにできます。

$('.select-all').change(function() {
    $('.check').prop('checked', this.checked);
});

ここに基本的なデモの実装がありますhttp://jsfiddle.net/dfsq/YtMuh/

.select-allまた、すべての行を手動でチェックした場合 (または、少なくとも 1 つの行が選択されていない場合はチェックされていない場合)、そのチェックボックスが自動的にチェックされるようにすることもできます: http://jsfiddle.net/dfsq/YtMuh/2/

于 2013-03-22T21:18:22.567 に答える
0

私は Razor が物事をレンダリングする方法に慣れていないので、これはコピー アンド ペーストではないかもしれませんが、これで始められるはずです。

$('.selectAllCheckbox').on('change', function(ev) { 
    //assumes all of your "line item" checkboxes share a common class
    //this could easily be replaced with another selector "#mytable [type=checkbox]", etc
    $('.myLineItemCheckboxes').attr('checked', $(this).is(':checked'));
});

そうは言っても、あなたの質問に対するコメントを読んでください...そこには良いアドバイスがあります

于 2013-03-22T20:42:03.787 に答える
0

これには 2 つの方法でアプローチできます。最初に、この人のソリューションをここで見ることができます: http://briancray.com/posts/check-all-jquery-javascript

もう1つの方法は、各チェックボックスに同じクラスを設定し、jqueryを使用して、「すべて」ボックスがチェックされている場合にchecked属性をtrueに設定することです。

$('.allchecked').attr('checked', true);
于 2013-03-22T20:46:12.677 に答える