0

チェックボックス付きのグリッドがあります

                        @(Html.Kendo().Grid<Re.Web.ReService>()
                    .Name("ServiceList")
                        .Columns(columns =>
                        {
                            columns.Bound(p => p.PKiServiceID)
                            .ClientTemplate("<input name=\"selectedIds\" type=\"checkbox\" value=\"#=PKiServiceID#\" class=\"chk\"/>")
                            .HeaderTemplate("<input type=\"checkbox\" class=\"selectAll\" />")
                            .Width(30);
                            columns.Bound(p => p.SServiceName).Width(200);
                            columns.Bound(p => p.MServicePrice).Width(80);
                            columns.Bound(p => p.BStatus).Width(70).ClientTemplate("#if(BStatus){# #='Y'# #} else {# #='N'# #}#");
                            columns.Bound(p => p.SDescription);
                        })
                    .Selectable()
                    .Pageable()
                    .DataSource(dataSource => dataSource
                        .Ajax()
                        .Model(model => model.Id(p => p.PKiServiceID))
                        .Read(read => read.Action("ServiceRead", "Home"))
                    )
                    )

そしてジャバスクリプト

    $(document).ready( function () {
    var grid = $("#ServiceList").data("kendoGrid");

    //handle the click of the header checkbox
    grid.table.on("change", ".selectAll", function () {
        var checkbox = $(this);
        if (checkbox.is(':checked')) {
            grid.table.find("tr")
                .find("td:first input")
                .attr("checked", checkbox.is(":checked"));

        }
        else {
            grid.table.find("tr")
                .find("td:first input")
                .attr("checked", checkbox.is(":checked"));
        }
    });
});

グリッド内のすべての行をチェック/チェック解除できます 今、すべて選択チェックボックスをクリックすると、列 MServicePrice のすべての値が取得されるので、合計値を計算できます。を使ってみました$(this).closest('tr')がうまくいきません

4

1 に答える 1

2

check all ハンドラーの内部では、グリッド内のすべてのアイテムがチェックされることを意味するため、基本的にすべてのアイテムの値を取得する方法を尋ねていますか?

dataSource を使用して、view() コレクションを反復処理できます。

例えば

function checkAll(ele) {        
    var grid = $('#gridName').data().kendoGrid;
    var total = 0;
    $.each(grid.dataSource.view(), function () {           
        total += this.Salary;            
    });
    alert(total);        
}
于 2013-03-09T07:42:02.803 に答える