行アイテムの値(名前、電子メール、年齢)を取得しようとしていますが、以下のコードを使用して最初のアイテムのみを取得します。 tr:eq(1)コードを変更して他の行テキストを取得する方法、または2つの項目の値を取得する他の方法があります。
$("#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);
}
});
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;
}
サンジェイに感謝しますが、私は行アイテムを選択することを考えていました、そしてこれは私が得たものです:
//Selecting Grid
var gview = $("#grid").data("kendoGrid");
//Getting selected item
var selectedItem = gview.dataItem(gview.select());
//accessing selected rows data
alert(selectedItem.email);
だからそれは完璧にうまくいった。
グリッドが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グリッドが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は探しているプロパティです。
私は通常、イベントのモデルを使用します。時々、実際には非常にまれに、行の選択が解除されるため、.select()は長さ0のオブジェクトを返し、未定義のプロパティにアクセスしようとするとエラーがスローされます。
次を使用した方が安全な場合があります:e.model.name