我正在使用Asp.Net KendoUI Grid MVC帮助程序,但无法使分页正常工作。具体来说,我无法显示总记录。这是代码:
@(Html.Kendo().Grid(Model.FunctionList.AsEnumerable())
.Name("Grid")
.DataSource(dataSource => dataSource
.Server()
.Total(50)
.Model(model => model.Id(f => f.FunctionId))
.Read(read => read.Action("Index", "Function"))
.Update(update => update.Action("Edit", "Function"))
.Destroy(destroy => destroy.Action("Delete", "Function"))
)
.Columns(columns =>
{
columns.Bound(f => f.FunctionName);
columns.Bound(f => f.FunctionDescription);
columns.Command(command => { command.Custom("Edit").Action("Edit", "Function").SendDataKeys(true); command.Destroy(); }).Width(200);
})
.Scrollable()
.Groupable()
.Sortable()
.Pageable(pageable => pageable
.PageSizes(true)
.ButtonCount(5))
.Filterable(filterable => filterable
.Extra(false)
.Operators(ops => ops
.ForString(str => str.Clear()
.Contains("Contains")
.StartsWith("Starts with")
.EndsWith("Ends with")
.IsEqualTo("Equal to")
.IsNotEqualTo("Not Equal To")
)))
)
注意.Total(50)。无论选择的页面大小(5,10或20),我只得到1页,即网格显示“n个项目中的1到n”,其中n是页面大小。对于页面大小为5和总记录为50,它应该显示“50个项目中的1-5个”。
生成的javascript(查看源代码)显示Total(50)无效:
"pageSize":5,"page":1,"total":5,"serverPaging":true
注意“总数”:5应该是“总数”:50
答案 0 :(得分:1)
我发布的整个网格在我的应用程序上工作正常。但我看了你的代码,你的数据源属性有问题,你缺少 .Ajax() 和 .ServerOperation(false)< / em> (在添加这两个之后我做了分页工作),将它与我的比较,你会发现真正的原因
Html.Kendo().Grid(Model.asdry).Name("abc").Columns(c =>
{
c.Bound(p => p.datetimecalculated).Format("{0:dd-MM-yyyy}");
c.Bound("").ClientTemplate("#= purchaseCriteria(data) #").Title("Sold/Bought");
c.Bound(p => p.numcontracts);
c.Bound(p => p.entityid);
c.Bound(p => p.leagueid);
c.Bound("")
.ClientTemplate("#= setSeasonYear(data) #")
.Sortable(false)
.Title("Year");
c.Bound("")
.ClientTemplate("#= setSeason(data) #")
.Sortable(false)
.Title("Season");
c.Bound(p => p.contractmeasurable);
c.Bound(p => p.price).ClientTemplate("#= moneyformat_at(price) #");
c.Bound(p => p.profitorloss).ClientTemplate("#= moneyFormat(profitorloss) #");
}).DataSource(
d => d
.Ajax()
.ServerOperation(false)
)
.Pageable()
.Sortable()
.Resizable(resizing => resizing.Columns(true))
)
<强>更新强> 使用这些的原因如下 .Ajax()//指定使用ajax绑定 .ServerOperation(false)//分页,排序,过滤和分组将在客户端完成
答案 1 :(得分:0)
http://docs.telerik.com/kendo-ui/tutorials/ASP.NET/Hello%20Kendo%20UI/asp-net-hello-kendo-ui-part-1
这是一个很好的分页教程!
你需要跳过并拍摄。
如果您的页面尺寸为10且页码为2,则您希望基本上执行此总和
跳过。((第1页)* pageSize)。取(pageSize)
soo如果将记录10-20 并显示其中10个!
这可能没有意义,但链接很好! :)
答案 2 :(得分:0)
将kendogrid的serverPaging设置为false:
serverPaging: false,