2015-10-15 51 views
8

我找到具有類似標題的帖子,但仍無法解決我的問題。當然,我做錯了什麼。以編程方式選擇Kendo網格行

在劍道網格配置有一些功能,其採取上下文(網格)和讀取所選行:

​​

這是我如何配置的「改變」事件。

在功能上「刷新(網格)」我正在對下列方式選擇行:

refresh: function (grid) {   
    var selectedRows = grid.select(); 
    var selectedRow = grid.dataItem(selectedRows[0]); 
    var id = selectedRow.Id; 
} 

這種方法完美的作品時,我手動選擇網格行。但是,當我以編程方式選擇行「selectedRow」變量爲空。

我在下面的方式編程選擇:

var grid = $("#grid").data("kendoGrid"); 
var rows = grid.dataSource.data(); 
var row = rows[rows.length - 1]; 
grid.select(row); 

正如我傷心以上,在以前的「刷新(網格)」方法變量selectedRow將是無效的。

有人對此有任何意見嗎?爲什麼發生?

由於

回答

12

根據電網文檔"select"方法接受「串」參數(選擇器)或jQuery的元件。這就是爲什麼如果你需要正確選擇行,你應該修改你的當前代碼如下:

var grid = $("#grid").data("kendoGrid"); 

//if you are using the "pageable" option of the grid 
//you should get the visible rows using the .view() method 
var models = grid.dataSource.data(); 

var model = rows[rows.length - 1]; 
var lastRowUid = model.uid; 

//find the target row element: 
var row = grid.table.find("[data-uid=" + lastRowUid + "]"); 

grid.select(row); 
+0

謝謝,只需要改變是改變行[rows.length - 1];模型[rows.length - 1]; – s1cart3r

相關問題