【发布时间】:2017-02-22 09:24:44
【问题描述】:
我使用 Asp.Net MVC 包装器创建了一个剑道网格。我已经包含一个用于选择多行的复选框,使接线和一切正常。但是,当我更改页面或在选择行/复选框消失时进行过滤时,我遇到了问题。
这个问题的解决方法是什么?
【问题讨论】:
标签: kendo-grid
我使用 Asp.Net MVC 包装器创建了一个剑道网格。我已经包含一个用于选择多行的复选框,使接线和一切正常。但是,当我更改页面或在选择行/复选框消失时进行过滤时,我遇到了问题。
这个问题的解决方法是什么?
【问题讨论】:
标签: kendo-grid
您需要使用.PersistSelection(true) 来确保在更改页面时保持选中行:
@(Html.Kendo().Grid<Kendo.Mvc.Examples.Models.OrderViewModel>()
.Name("rowSelection")
.Columns(columns => {
columns.Bound(o => o.ShipCountry).Width(300);
columns.Bound(p => p.Freight).Width(300);
columns.Bound(p => p.OrderDate).Format("{0:dd/MM/yyyy}");
})
.Pageable(pageable => pageable.ButtonCount(5))
.Selectable(selectable => selectable
.Mode(GridSelectionMode.Multiple))
.PersistSelection(true)
.Navigatable()
.DataSource(dataSource => dataSource
.Ajax()
.Model(m=>m.Id("OrderID"))
.PageSize(6)
.Read(read => read.Action("Orders_Read", "Grid"))
)
还要确保在 DataSource 中声明了 id 列,例如示例中的 .Model(m=>m.Id("OrderID")),否则会失败。
详细信息here。
我在使用 jQuery grid.select() 时遇到了问题:
var grid = $('#rowSelection').data('kendoGrid');
var rows = grid.select();
这似乎只返回在当前显示的页面上选择的行,而不是在所有页面中选择的所有行。
【讨论】: