我正在尝试在我的MVC应用程序中使用kendo网格实现服务器端排序。但排序选项没有显示。我已经仔细检查过我已经启用了所有必要的选项(使服务器输出为真实的kendo网格数据源并使可滚动到true为网格元素)来执行此操作,但我仍然能够找到可排序的选项。下面是我的剑道网格代码
Kendo Grid Script
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);
}
* 任何人都可以帮我解决此问题。 *
答案 0 :(得分:0)
您可以使用KendoGridBinderEx中的帮助程序功能来解析所有命令(如过滤和排序),并使用DynamicLinq自动在服务器端进行过滤和排序。
有关示例,请参阅此项目:https://github.com/StefH/KendoGridBinderEx。
也可用作NuGet包:https://www.nuget.org/packages/KendoGridBinderEx/