我在上面看到了一些使用 PartialView 的示例,这很好,但这是另一种不使用 PartialViews 的方式。
我会为窗口创建一个 div 元素,为网格创建另一个元素。然后,我将使用网格读取事件的自定义参数来实例化两个剑道元素,以便结果可以是动态的。
我的JavaScript:
$(document).ready(function () {
//VARIABLE TO HOLD PARAMETER VALUE FOR READ EVENT
var id = 0;
$("#btn").click(function () {
var dialog = $("#kendoWindow").data("kendoWindow");
dialog.center().open();
});
$("#grid").kendoGrid({
dataSource: {
transport: {
read: {
url: 'YOUR URL TO CONTROLLER ACTION',
type: "GET",
dataType: 'json',
data: function() {
return {
id: id
}
}
}
},
schema: {
model: {
id: "ProductId",
fields: {
ProductName: { type: "string" }
}
}
},
pageSize: 20
},
height: 550,
columns: [
"ProductId",
"ProductName"
]
});
$("#kendoWindow").kendoWindow({
title: "Add",
model: true,
open: function () {
//ON OPEN EVENT OF WINDOW YOU CAN CHANGE THE PARAMETER IF NEEDED
id = 10;
$("#grid").data("kendoGrid").dataSource.read();
}
});
});
我的HTML:
<h2>kendoGridinKendoWindow</h2>
<button id="btn">Open Window</button>
<div id="kendoWindow">
<div id="grid"></div>
</div>
我的控制器操作(根据需要更改):
public JsonResult GetData(int id)
{
if(id == 0) {
List<Product> data = new List<Product>();
for(var i=0; i< 10; i++){
data.Add(new Product{ ProductId = i, ProductName ="test" + i});
}
return Json(data, JsonRequestBehavior.AllowGet);
}
else
{
List<Product> data = new List<Product>();
data.Add(new Product { ProductId = 0, ProductName = "test" });
return Json(data, JsonRequestBehavior.AllowGet);
}
}