如何在Kendo网格的所有页面中返回所有项目的ID?

时间:2018-08-15 10:47:23

标签: javascript jquery asp.net-mvc kendo-ui

我的Kendo Grid需要一些帮助。绑定数据后,我在网格上运行了一个名为initialSelection的函数。该功能的目的是选择网格中与通过数组传递的ID相匹配的所有项目。

这是我的网格代码:

@(Html.Kendo().Grid<MyProject.ViewModels.MyViewModel>()
.Name("CarGrid")
.Columns(columns =>
{
    columns.Select().Width(50);
    columns.Bound(c => c.Id);
    columns.Bound(c => c.Name).Title("Name");
})
.Pageable()
.Sortable()
.Events(ev => ev.DataBound("initialSelection"))
.PersistSelection(true)
.DataSource(dataSource => dataSource
    .Ajax()
    .Model(model => model.Id(p => p.Id))
    .Read(read => read.Action("GetVessels", "Test"))
))

这是该功能的代码。

function initialSelection(e) {
    var arr = [206, 210, 7010, 209],
        grid = e.sender,

    for (var i = 0; i < grid.items().length; i++) {
        if (arr.indexOf(grid.dataItem(grid.items()[i]).Id) > -1) {
            grid.select(grid.items()[i]);
        }
    }
}

因此,此函数采用一个数组(在函数中出于演示目的定义),并检查该ID的网格,如果找到它们,则选择该行。问题在于该函数逐页运行。由于我有很多数据,所以必须进行分页!

这是我的控制器代码:

public ActionResult GetCars([DataSourceRequest] DataSourceRequest request)
    {
        var car = unitOfWork.CarRepository.Get().OrderBy(i => i.Name);
        var result = car.ToDataSourceResult(request);
        return Json(result, JsonRequestBehavior.AllowGet);
    }

我已经看到一些有关使用dataSource.data()的帖子,但是我不确定如何实现。当我做一些测试时,它仍然只显示10个结果,这是启用分页时的默认数字。

有人知道我如何遍历网格中每个页面上的所有行并返回所选行的ID吗?

0 个答案:

没有答案