kendo grid 所提供的 dataItem 方法之使用
範例一、
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>Kendo UI Snippet</title> <link href="https://kendo.cdn.telerik.com/2020.1.406/styles/kendo.common.min.css" rel="stylesheet" /> <link href="https://kendo.cdn.telerik.com/2020.1.406/styles/kendo.default.min.css" rel="stylesheet" /> <script src="https://code.jquery.com/jquery-1.12.3.min.js"></script> <script src="https://kendo.cdn.telerik.com/2020.1.406/js/kendo.all.min.js"></script> </head> <body> <div id="grid"></div> <script> $("#grid").kendoGrid({ columns: [ { field: "name" }, { field: "age" } ], dataSource: [ { name: "Tim", age: 10 }, { name: "Mary", age: 50 } ] }); var grid = $("#grid").data("kendoGrid"); var dataItem = grid.dataItem("tbody tr:eq(0)"); console.log(dataItem.name); console.log(dataItem.age); </script> </body> </html>
執行結果

說明:
kendoGrid 有提供 dataItem 方法。
dataItem 方法可用來取出一列中的每一個 cell 資料。
範例二、
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>Kendo UI Snippet</title> <link href="https://kendo.cdn.telerik.com/2020.1.406/styles/kendo.common.min.css" rel="stylesheet" /> <link href="https://kendo.cdn.telerik.com/2020.1.406/styles/kendo.default.min.css" rel="stylesheet" /> <script src="https://code.jquery.com/jquery-1.12.3.min.js"></script> <script src="https://kendo.cdn.telerik.com/2020.1.406/js/kendo.all.min.js"></script> </head> <body> <div id="example"> <div id="grid"></div> <script> function onChange(e) { var rows = this.select();// 會回傳所選到的 row 集合。例如選了三個,row 集合就有三個 // 這個 this 就代表 $("#grid") 的 kendoGrid instance 也等於 var rows = e.sender.select(); rows.each(function (e) { var grid = $("#grid").data("kendoGrid"); // 將 rows 集合裡的其中一個 jQuery object 餵給 dataItem() 去找尋,此 this 表示為 rows 集合裡的其中一個 Item var dataItem = grid.dataItem(this); console.log(dataItem.toJSON()); }); } $(document).ready(function () { $("#grid").kendoGrid({ dataSource: { pageSize: 10, transport: { read: { url: "https://demos.telerik.com/kendo-ui/service/Products", dataType: "jsonp" } }, schema: { model: { id: "ProductID" } } }, pageable: true, scrollable: false, persistSelection: true, sortable: true, change: onChange, columns: [ { selectable: true, width: "50px" }, { field: "ProductName", title: "Product Name" }, { field: "UnitPrice", title: "Unit Price", format: "{0:c}" }, { field: "UnitsInStock", title: "Units In Stock" }, { field: "Discontinued" } ] }); }); </script> </div> </body> </html>
執行結果

說明:
1、kendoGrid 的 change 事件裡的「this」就代表 $("#grid") 的 kendoGrid instance 也等於「e.sender」。
2、kendoGrid 的 dataItem 方法是用來將 Grid 裡的一筆 item 轉成 kendo.data.ObservableObject。(講得很模糊,請直接看範例一說明,比較好懂其用法)
參考資料: