Kendo 网格多选最大行数

Kendo Grid multiple selection maximum row count

我们正在为用户使用 Kendo Grid(Asp.Net Mvc) 任务 table.Users 将 select 最多 10 个任务,并使用位于 grid.We 底部的按钮开始操作限制行的最大 selection。我们设置了 GridSelectionMode.Multiple select可用模式。

    @(Html.Kendo().Grid<TaskModel>()
    .Name("TaskModelGrid")
    .Selectable(s => s.Mode(GridSelectionMode.Multiple))
    .Columns(columns =>
    {
        columns.Bound(c => c.TaskName);
        ...
    })
    .HtmlAttributes(new { style = "height: 550px;" })
    .Scrollable()
    .Groupable()
    .Sortable()
    .DataSource(dataSource => dataSource
        .Ajax()
        .Read(read => read.Action("GetUsersTask", "TaskController"))
        .PageSize(20)
    )
)

有什么设置或方法可以使用吗?我们检查了文档,但找不到 anything.Any 个想法,我们将不胜感激。感谢您的帮助。

我打赌你可以通过对网格更改事件进行计数检查来做到这一点:

....

.Events(e=> e.Change("onGridRowChange"))

...
function onGridRowChange()
{
    var grid = $('#grdMyGrid').data('kendoGrid');
    var selectedRows = grid.select();
    console.log(selectedRows.length);
}

Kendo 没有对最大 selected 行的开箱即用支持。使用 Change 事件捕获 selected 行和 de-select 额外行的数组。基本工作代码如下,用户最多可以 select 10 行。

.cshtml

.Events(e=> e.Change("onRowChange"))

function onRowChange(e)
{
    /* get all the selected rows */
    var items = e.sender.select();
    items.each(function(i, e) {
      /* allows user to select 10 rows max */
      if (i > 9) {
        $(e).removeClass("k-state-selected");
      }
    });
}

查看演示 fiddle