【发布时间】:2013-08-09 16:46:45
【问题描述】:
我正在尝试在我的 MVC 应用程序中使用剑道网格实现服务器端排序。但未显示排序选项。我已经仔细检查了我是否启用了所有必要的选项(使服务器对剑道网格数据源的排序为真,并使网格元素的可滚动为真)以执行此操作,但我仍然能够找到可排序的选项。下面是我的剑道网格代码
剑道网格脚本
var grid = $("#grid");
grid.children().remove();
grid.kendoGrid({
columns: [{attributes:"",field:"",template:"${ResultFields[0].Value},title:"Column 1",width:"110px"},{attributes:"",field:"",template:"${ResultFields[1].Value},title:"Column 1",width:"110px"}],
resizable: true,
reorderable: true,
scrollable: true,
filterable: true,
columnMenu: true,
selectable: "row",
selectable: "multiple",
dataBound: function () { alert("Data Bound"); },
dataSource: {
transport: {
read: {
url: '@Url.Action("Index", "KendoServerSideSorting")',
type: "GET",
dataType: "json",
traditional: true,
data: {
itemTypeId: 1,
where: values,
orderBy: ["", "", ""],
},
},
},
schema: {
data: "Items",
total: "TotalItems",
},
serverPaging: true,
pageSize: 10,
error: function (e) {
alert(e.errors);
}
},
pageable: {
pageSize: 10,
input: true,
pageSizes: [10, 20, 30, 50, 100, 250],
},
change: function () { alert("Change event"); },
})
控制器动作如下所示
public JsonResult Search(int itemTypeId, int skip, int take, string[] where, string[] orderBy)
{
var v = Kernel.Get<IItemSearch>().Search(itemTypeId, skip, take, where, orderBy);
return Json(v, JsonRequestBehavior.AllowGet);
}
*谁能帮我解决这个问题。 *
【问题讨论】:
-
我发现this 对实现服务器端排序、分页甚至多列过滤非常有帮助。它来自 Telerik。 HTH
-
用于初始化 Kendo 的 JS 对象不应该有属性
sortable如下所示:demos.telerik.com/kendo-ui/web/grid/sorting.html 吗? -
您可以将剑道网格数据存储在可观察对象中(例如,剑道可观察对象或淘汰可观察对象)并将其传递给 razor 以在服务器端进行解析。只是一个想法。
标签: kendo-ui kendo-grid