Kendo UI Grid获取行值

时间:2013-10-18 20:40:50

标签: kendo-grid

我正在尝试获取行项目值(名称,电子邮件,年龄),但我只使用下面的代码获取第一项。如何通过更改tr:eq(1)代码来获取其他行文本,或者是否有任何其他方法可以获得两个项目值。

            $("#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);

                }
            });

4 个答案:

答案 0 :(得分:12)

试试这个..

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

答案 1 :(得分:12)

感谢Sanjay但是我只想选择一个行项目,这就是我得到的:

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

所以它很完美。

答案 2 :(得分:3)

如果您的网格设置为可选:true,请使用以下命令:

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

如果您的Kendo UI Grid设置为可选:false,请使用以下命令:

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是您正在寻找的财产。

答案 3 :(得分:1)

我通常使用事件中的模型。有时,实际上非常少,行被取消选择,因此,.select()将返回一个0长度的对象,在尝试访问未定义的属性时会抛出错误。

您可能更安全地使用:e.model.name