首页 > 解决方案 > 如何返回我的 Kendo Grid 中所有页面的所有项目的 ID?

问题描述

我需要一些关于我的剑道网格的帮助。绑定数据时,我在网格上运行一个函数,称为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?

标签: javascriptjqueryasp.net-mvckendo-ui

解决方案


推荐阅读