我正在尝试使用服务器端分页的KendoUI网格。到目前为止,我已经设法从远程数据源获取网格读取数据并正确地将分页/过滤信息发送到MVC控制器操作
这样工作正常,但我根本看不到网格的分页控件。
我已经尝试将pageable: true
添加到网格的设置中,虽然这确实显示了寻呼机控件,但它没有显示任何页面/总数并抛出JS 对象不支持此当我尝试使用next / prev页面按钮更改页面时,属性或方法。它正在寻找的方法是'切片' - 我将看看非缩小的剑道src,但与此同时我想我会发布在这里
动作如下:
public ActionResult _Index(int? pageSize, int? skip, string filter = "")
{
// Code that gets the data
var data = ... (some Linq->Entities queries)
var total = ... (total count of all the entities)
return Json(new { total, data });
}
我正确地返回了总数,我检查了JSON并且它符合我的预期(以及网格应该期待的内容)
网格设置如下:
$(document).ready(function () {
var grid = $("#itemList").kendoGrid({
toolbar: kendo.template($("#template").html()),
columns: ["Manufacturer", "Model", "Price", "Tags"],
dataSource: {
transport: {
read: {
url: "catalogadmin/_index",
dataType: "json",
type: "POST",
data: {
filter: ""
}
},
},
schema: {
data: "data", // records are returned in the "data" field of the response
total: "total" // total number of records is in the "total" field of the response
},
pageSize: 2,
serverPaging: true
},
pageable: true
});
我将pageSize设置为2以测试分页(因为我在数据库中只有4个项目)
JSON是:
{"total":4,"data":[{"Id":6,"Manufacturer":"hello","Model":";lmqw;lemwqe","Price":4.00,"ShortDescription":"world","Tags":[],"Used":false}]}
我认为这不是问题 - 看起来你需要设置pageable: true
才能让分页正常工作 - 但我认为分页甚至不适用于客户端数据,我只是要去现在检查
编辑:我已经检查过,客户端分页也不起作用。在尝试翻页时,我得到了“无法获取未定义或空引用的属性”。寻呼机看起来像服务器端页面,没有数据,没有页码,没有总计。
我认为剑道的注册权并不是很好 - 我有最新的版本(现在只下载)但没有雪茄......
答案 0 :(得分:1)
排序 - 不知道为什么但是当我使用Teleriks转换为Kendo UI项目安装KendoUI时,它同时注册了kendo.all.min.js
文件以及mvc / dataviz文件。
我删除了额外的脚本引用,现在一切正常!