我的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吗?