2013-10-18 158 views
4

我正在嘗試獲取行項目值(名稱,電子郵件地址,年齡),但我只通過使用下面的代碼獲取第一個項目。如何通過更改tr:eq(1)代碼來獲取其他行文本,或者有任何其他方式來獲取兩個項目的值。Kendo UI Grid獲取行值

  $("#grid_").kendoDropTarget({ 
       drop: function (e) {        

        var data = grid.dataItem("tr:eq(1)"); 
        // I only get first row but I need to dynamically get any row items. 
        alert(data.name); 

       } 
      }); 

回答

10

PLZ試試這個..

var entityGrid = $("#DataGrid").data("kendoGrid");  
var data = entityGrid.dataSource.data(); 
var totalNumber = data.length; 

for(var i = 0; i<totalNumber; i++) { 
    var currentDataItem = data[i]; 
    VersionIdArray[i] = currentDataItem.VersionId; 
} 
10

感謝桑傑但是我一直在尋找,只是選擇一個行項目,這是我的了:

//Selecting Grid 
var gview = $("#grid").data("kendoGrid"); 
//Getting selected item 
var selectedItem = gview.dataItem(gview.select()); 
//accessing selected rows data 
alert(selectedItem.email); 

所以它的工作完美。

+0

我們可以做到這一點,而不需要選擇行嗎? – Aviator

1

我通常使用事件中的模型。有時,實際上很少,行被取消選擇,因此,.select()將返回一個0長度的對象,在嘗試訪問未定義的屬性時會拋出錯誤。 e.model.name

4

如果您的網格設置爲可選擇:真,使用以下命令:

var mygrid = $("#grid").kendoGrid({ 
    selectable: true 
}); 

mygrid.on("click", "tr", function() { 
    var datarowindex = mygrid.data("kendoGrid").items().index(mygrid.data("kendoGrid").select()); 
    var datarowid = mygrid.data("kendoGrid").dataItem(mygrid.data("kendoGrid").select()).MyId; 
    alert("index: " + datarowindex + " | value: " + datarowid); 
}); 

如果你的劍道UI格設置爲可選擇:虛假,使用

你可能會使用更安全以下:

var mygrid = $("#grid").kendoGrid({ 
    selectable: false 
}); 

mygrid.on("click", "tr", function() { 
    var datarowindex = mygrid.data("kendoGrid").items().index($(this)); 
    var datarowid = mygrid.data("kendoGrid").dataItem($(this).closest("tr")).MyId; 
    alert("index: " + datarowindex + " | value: " + datarowid); 
}); 

其中MyId是您正在尋找的財產。