Kendo Grid dataSource usage
kendo grid 的 dataSource 屬性值可以是 data object、javascript objects、kendo.data.DataSource instance。
一、data object
$("").kendoGrid({ dataSource: { data: [ { FirstName: "Joe", LastName: "Smith" }, { FirstName: "Jane", LastName: "Smith" } ] } });
如下範例
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>Kendo UI Snippet</title> <link rel="stylesheet" href="https://kendo.cdn.telerik.com/2020.1.219/styles/kendo.common.min.css" /> <link rel="stylesheet" href="https://kendo.cdn.telerik.com/2020.1.219/styles/kendo.rtl.min.css" /> <link rel="stylesheet" href="https://kendo.cdn.telerik.com/2020.1.219/styles/kendo.silver.min.css" /> <link rel="stylesheet" href="https://kendo.cdn.telerik.com/2020.1.219/styles/kendo.mobile.all.min.css" /> <script src="https://code.jquery.com/jquery-1.12.4.min.js"></script> <script src="https://kendo.cdn.telerik.com/2020.1.219/js/kendo.all.min.js"></script> </head> <body> <div id="grid"></div> <script> $(document).ready(function () { $("#grid").kendoGrid({ columns: [{ field: "FirstName", title: "First Name" }, { field: "LastName", title: "Last Name" }], dataSource: { data: [ { FirstName: "Joe", LastName: "Smith" }, { FirstName: "Jane", LastName: "Smith" } ] } }); }); </script> </body> </html>
二、javascript objects
$("").kendoGrid({ dataSource: [ { name: "Jane Doe", age: 30 }, { name: "John Doe", age: 33 } ] });
如下範例
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>Kendo UI Snippet</title> <link rel="stylesheet" href="https://kendo.cdn.telerik.com/2020.1.219/styles/kendo.common.min.css" /> <link rel="stylesheet" href="https://kendo.cdn.telerik.com/2020.1.219/styles/kendo.rtl.min.css" /> <link rel="stylesheet" href="https://kendo.cdn.telerik.com/2020.1.219/styles/kendo.silver.min.css" /> <link rel="stylesheet" href="https://kendo.cdn.telerik.com/2020.1.219/styles/kendo.mobile.all.min.css" /> <script src="https://code.jquery.com/jquery-1.12.4.min.js"></script> <script src="https://kendo.cdn.telerik.com/2020.1.219/js/kendo.all.min.js"></script> </head> <body> <div id="grid"></div> <script> $("#grid").kendoGrid({ columns: [ { field: "name" }, { field: "age" } ], dataSource: [ { name: "Jane Doe", age: 30 }, { name: "John Doe", age: 33 } ] }); </script> </body> </html>
三、kendo.data.DataSource instance (CRUD operations)
1、官方範例
var dataSource = new kendo.data.DataSource({ transport: { read: { url: "https://demos.telerik.com/kendo-ui/service/products", dataType: "jsonp" } } });
如下範例
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>Kendo UI Snippet</title> <link rel="stylesheet" href="https://kendo.cdn.telerik.com/2020.1.219/styles/kendo.common.min.css" /> <link rel="stylesheet" href="https://kendo.cdn.telerik.com/2020.1.219/styles/kendo.rtl.min.css" /> <link rel="stylesheet" href="https://kendo.cdn.telerik.com/2020.1.219/styles/kendo.silver.min.css" /> <link rel="stylesheet" href="https://kendo.cdn.telerik.com/2020.1.219/styles/kendo.mobile.all.min.css" /> <script src="https://code.jquery.com/jquery-1.12.4.min.js"></script> <script src="https://kendo.cdn.telerik.com/2020.1.219/js/kendo.all.min.js"></script> </head> <body> <div id="grid"></div> <script> var dataSource = new kendo.data.DataSource({ transport: { read: { url: "https://demos.telerik.com/kendo-ui/service/products", dataType: "jsonp" } }, pageSize: 10 }); $("#grid").kendoGrid({ dataSource: dataSource, pageable: true }); </script> </body> </html>
2、北風資料庫範例
Model 的部份,去連北風資料庫,詳細作法就不提了。
此範例只會用到 Product 資料表。
HomeController.cs 的內容為
using System.Web.Mvc;
using WebApplication1.Models;
namespace WebApplication1.Controllers
{
public class HomeController : Controller
{
private NorthwindEntities db = new NorthwindEntities();
public ActionResult Index()
{
return View();
}
[HttpPost]
public ActionResult GetProducts()
{
return JsonNetResult(db.Products);
}
private ContentResult JsonNetResult(object model)
{
return Content(Newtonsoft.Json.JsonConvert.SerializeObject(model), "application/json", System.Text.Encoding.UTF8);
}
}
}
Index.cshtml 的內容為
@{
ViewBag.Title = "Home Page";
}
@model IEnumerable<WebApplication1.Models.Product>
<div id="grid"></div>
@section scripts{
<script src="https://kendo.cdn.telerik.com/2020.1.219/js/kendo.all.min.js"></script>
<script>
$(document).ready(init);
function init() {
var dataSource = new kendo.data.DataSource({
pageSize: 5,
transport: {
read: {
datatype: "json",
type: "post",
url: "/Home/GetProducts",
}
}
});
$("#grid").kendoGrid({
dataSource: dataSource,
pageable: true
});
}
</script>
}
執行畫面為
參考資料: