11

我正在尝试获取行项目值(姓名、电子邮件、年龄),但我只能使用下面的代码获取第一项。

如何通过更改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

4 回答 4

18

请试试这个..

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;
}
于 2013-10-19T14:39:24.403 回答
13

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

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

所以结果很完美。

于 2013-10-21T14:49:10.120 回答
4

如果您的网格设置为 selectable: 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 设置为 selectable: 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 是您要查找的属性。

于 2015-02-18T15:05:56.777 回答
1

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

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

于 2013-12-31T14:45:16.787 回答