2012-11-18 61 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') 
    }); 
}); 


注:如果在格獲得記錄的問題,使用該腳本網格定義之後,而不是電網定義之前。