如何在Kendo Grid中手动设置总记录?

时间:2017-06-04 09:24:11

标签: jquery asp.net-mvc-4 razor kendo-grid kendo-asp.net-mvc

我有一个要求,即在后端处理大型数据集。一旦处理完第一批,我就要求将数据绑定到网格。一切都很好,直到第一次绑定,但总记录没有正确显示,我没有得到实际的分页按钮数(或者说,我无法导航到下一页)。

我读到寻呼机中的总数与Kendo UI网格的总属性相关联,因此为了更新其值,还应更新dataSource的总和。

我手动更新了dataSource

的总和
$('#CenterList').data("kendoGrid").dataSource._total = 50;

但是没用。

@(Html.Kendo().Grid<Center>()
    .Name("CenterList")
    .Pageable(pager => pager
        .Input(true)        
        .PageSizes(true)   
        .Refresh(true)
        .ButtonCount(5)
        .Numeric(true)
    )
    .Columns(columns =>
    {
        columns.Bound(x => x.centerCode).Title("center code").Width(30).ClientTemplate(
            "<a style='cursor:pointer' onclick='EditCenter(&quot; #:centerCode# &quot; );'>#: centerCode#</a>");
        columns.Bound(x => x.centerName).Title("CenterName").Width(100);
    })
    .DataSource(dataSource => dataSource
        .Ajax()
        .PageSize(15)
        .Read(read => read.Action("CenterList", "Maintenance"))
        .ServerOperation(true)
    )
    .Resizable(resize => resize.Columns(true))

)

这是控制器

public ActionResult CenterList([DataSourceRequest] DataSourceRequest request)
    {
        var groupList = iCenter.GetAllCenter(request.Page, Session["InstituteCode"].ToString());
        DataSourceResult result = groupList.ToDataSourceResult(request, x => new
        {
            x.centerCode,
            x.centerName,
        });
        return Json(result, JsonRequestBehavior.AllowGet);
    }

我可以获得第一页的记录。这是15行,然后我不能进入下一页。

我得到了记录的总数,并手动分配了剑道网格dataSource

$(document).ready(function () {
    var total;
    $.ajax({
        url: '@Url.Action("GetCenterCount","Maintenance")',
        dataType: 'json',
        async: false,
        success: function (data) {
            total = data;
        }
    });
    $('#CenterList').data("kendoGrid").dataSource._total = total;

    alert("Total in ds = " + $('#CenterList').data("kendoGrid").dataSource._total);
});

在警报显示之前,总数是好的。但之后,Kendo Grid不显示总rowCount或下一页。

0 个答案:

没有答案