我正在实施jQGrid。这是我第一次能够获得十条记录,但是当我滚动到最后时我想绑定另外十条记录。但这不会发生。这是什么我错过了,但是我查看了jQGrid网站,它在3.6版本下具有相同的设置(http://www.trirand.com/blog/jqgrid/jqgrid.html)真正的滚动行
jQuery("#jqgrid").jqGrid({
url: 'http://localhost:7887/application/get',
mtype:'GET',
datatype: "json",
colNames: ['Application ID', 'Application Name', 'PageLink', 'CreatedDate',"Rank"],
colModel: [
{ name: 'ApplicationId', key: true, width: 75 },
{ name: 'ApplicationName', width: 150 },
{ name: 'PageLink', width: 150 },
{ name: 'CreatedDate', width: 150 },
{ name: 'RNK', width: 150 }
],
rowNum: 10,
height: 180,
records: 1000,
rownumbers:true,
scroll: 1,
viewrecords: true,
gridview: true,
caption:"Loading data while scrolling"
})
以下是我的回复数据的一部分
{[
{
"ApplicationId": 1,
"ApplicationName": "Home",
"PageLink": "~/web/Index.aspx",
"CreatedDate": "2013-08-14T12:09:07.93",
"RNK": 1
},
{
"ApplicationId": 2,
"ApplicationName": "Land",
"PageLink": "~/Web/Q1/Home.aspx",
"CreatedDate": "2013-08-14T12:09:07.93",
"RNK": 2
},
{
"ApplicationId": 3,
"ApplicationName": "Applications",
"PageLink": "~/Web/Q2/Application/APL.aspx",
"CreatedDate": "2013-08-14T12:09:07.93",
"RNK": 3
}
,.......10 records
]}
答案 0 :(得分:1)
jqGrid支持客户端排序和服务器端排序。
如果您使用loadonce: true
,则服务器应将所有数据返回到网格。如果用户稍后单击列标题,则数据将按按jqGrid 排序。如果您只是通过调用filterToolbar
添加过滤器工具栏,那么您将为用户提供过滤数据的可能性。您无需编写其他服务器代码。
您当前的代码从服务器加载数据页,并且不在本地保存任何数据(它仅将数据保存在HTML页面上)。因此,了解您必须在服务器端上实施排序,分页和可选的数据过滤/搜索非常重要。
要实现服务器端分页,您必须非常清楚客户端和服务器之间的接口。您应删除所有内容scroll: 1
并添加pager
或toppager
。之后,您将在网格中看到如下所示的线(在网格的底部或顶部)
The server response应包含三个属性:page
,total
和records
,这些属性将放置在寻呼机上。其他寻呼机元素
允许用户更改页面大小并向服务器发送有关新页面数据的请求。如果jqGrid显示第一页,则禁用“First”和“Previous”按钮。如果jqGrid显示最后一页,则“Next”和“Last”按钮被禁用。 如果服务器响应中缺少属性page
,total
和records
,那么将禁用所有分页可能性,因为jqGrid将响应解释为唯一的页面数据
如果您使用scroll: 1
而不是pager
或toppager
,则用户看不到寻呼机,但由于相同的原因导致分页被禁用。