Kendo 列表视图,添加了复选框,添加了 select 全部,将全部选中和取消选中一次,将不再全部选中。

Kendo Listview, added checkboxes, added a select all, will check and uncheck all once, will not check all again.

我需要一些帮助。我有一个 Kendo 列表视图:

 <form id="frmChk">
        @(Html.Kendo().ListView<thieme_ws3.Models.QaTestModel>(Model)
        .Name("testList")
        .TagName("fieldset")
        .HtmlAttributes(new { @class = "panel panel-primary panel-body" })
        .ClientTemplateId("template")
        )
        <br />
    </form>

我在输入的信息中添加了复选框:

<script type="text/x-kendo-tmpl" id="template">
        <div class="col-md-5">
        @Html.CheckBox("cb_#:Id#", new { @class = ".item", id = "cb_#:Id#" })  #=Name#
        </div>
    </script>

我添加了一个 select 全部复选框:

 <label id="checkAll" class="checkbox">
        <input type="checkbox" id="all" name="all" /> Select all
    </label>

并添加这个来触发它:

 $('#all').on('click', function (e) {
    //alert("I'm clicked!" + this.checked);
    var testList = $("#testList").data("kendoListView");
    var dataItems = testList.dataItems();

    //do thought to wrap the loop in a do while, caused the browser to stop
    {

        for (i = 0; i <= dataItems.length - 1; i++) {
            //alert(dataItems[i].id);
            var cb = $("#cb_" + dataItems[i].Id);
            if (this.checked) {
                cb.attr("checked", "checked");
            }
            else {

                (cb.removeAttr("checked"));
            }

        }
    }
    })

它将工作一次,选中所有框并取消选中所有框,但是当我再次选中 select 时,它不会 select 其他。我确定这是我忽略的小东西,请帮忙。

试试这个(假设复选框是 #testlist 的后代):

$('#all').on('change', function (e) {
    var isChecked = $(this).prop('checked');
    $("#testList").find('input[type="checkbox"]').prop('checked', isChecked);
})