2012-11-18 60 views
5

我正在使用Kendo网格的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

的确,您可以使用Grid和jQuery的dataBound事件将k状态选择的类添加到网格tbody中的第一个tr元素。

这里有一个例子:

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

但这不是真的选择它 – CMS

3

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

方法1

绑定通过

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

电网的onDataBound事件MVVM或通过

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

方法2

里面的

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

该作品在我的情况。希望能帮助到你。

0
$('#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.com/api/web/grid#methods-select

+0

你能解释一下这段代码的工作原理吗?只有代码答案(虽然有时被接受)可以通过添加一些东西来解释它的功能或工作原理。谢谢! –

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') 
    }); 
}); 


注:如果在格获得记录的问题,使用该脚本网格定义之后,而不是电网定义之前。