我正在尝试获取行项目值(名称,电子邮件,年龄),但我只使用下面的代码获取第一项。如何通过更改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);
}
});
答案 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