5

我正在开发一个使用 Kendo Grid 的 mvc4 项目。我希望用户看到默认选择的网格的第一行。我有很多行,所以我使用分页。当用户转到第 2,3、...40 页等时,我还希望看到每个页面的第一行被选中。下面是我创建网格的代码

<%: Html.Kendo().Grid(Model)
            .Name("AuthorisationsGrid")
            .Columns(columns =>
             {
                 columns.Bound(p => p.Mis).Title("MIS").Width(80);
                 columns.Bound(p => p.AuthorisationSerialNumber).Title("ΑΑ Προέγκρισης");
             })
             .Pageable()
             .Sortable()
             .Filterable()
             .Selectable(s => s.Mode(GridSelectionMode.Single))
             .Resizable(resize => resize.Columns(true))
             .DataSource(dataSource => dataSource
                .Ajax()
                .ServerOperation(false)
                .Model(model => model.Id(p => p.AuthorisationSerialNumber))
                .Model(model => model.Field(p => p.Mis))
                .Batch(true)
                .Read(read => read.Action("AuthorisationsPartial", "UserFilesDashboard")))%>

我怎样才能实现上述行为?也许 jQuery 可能有用(但我对 jQuery 知之甚少)。任何帮助表示赞赏。先感谢您。

4

4 回答 4

4

实际上,您可以使用 Grid 和 jQuery 的dataBound事件将k-state-selected类添加到 Grid tbody 中的第一个 tr 元素。

这是一个例子:

$('#GridName').data().kendoGrid.bind('dataBound',function(e){
    this.element.find('tbody tr:first').addClass('k-state-selected')
})
于 2012-11-18T19:56:04.583 回答
3

它也可以用另一种方式做到这一点

方法一

通过将网格绑定到onDataBound事件

<div data-bind="source: mydataSource, events: {
  dataBound: onDataBound
}" > 

对于 MVVM 或通过

("#gridName").data("kendoGrid").dataBound(..) (not exact)

方法二

里面

databound: function() {
  var uid = data[0].uid;
  var row = roomGrid.table.find('tr[data-uid="' + uid + '"]');
  roomGrid.select(row);
}

这适用于我的情况。希望能帮助到你。

于 2013-03-30T18:23:58.970 回答
1
$('#gridName').data().kendoGrid.bind('dataBound', function (e) {
            this.select("tr:eq(1)");
            //this.element.find('tbody tr:first').addClass('k-state-selected');
        })

有关更多详细信息,请参阅以下链接 http://docs.kendoui.c​​om/api/web/grid#methods-select

于 2013-12-28T14:35:26.817 回答
0

从以下位置更新代码后:

$('#GridName').data().kendoGrid.bind('dataBound',function(e){...

至:

$('#GridName').data("kendoGrid").bind('dataBound', function (e) {...

现在它已修复,下面的最终代码正在运行:

$(function () {
    $('#GridMaster').data("kendoGrid").bind('dataBound', function (e) {
        this.element.find('tbody tr:first').addClass('k-state-selected')
    });
});


注意:如果获取网格上的记录有问题,请在网格定义之后而不是在网格定义之前使用此脚本。

于 2015-02-25T19:48:26.777 回答