下面是我的jqgrid代码
$(function() {
jQuery("#jsonmap").jqGrid({
url: 'Handler.ashx',
datatype: "json",
colNames: ['Inv No', 'Name','Email'],
colModel: [{ name: 'id', index: 'id', width: 100},
{ name: 'name', index: 'name', width: 200 },
{ name: 'email', index: 'email', width: 200}],
rowNum: 10, rowList: [10, 20, 30],
pager: '#pjmap',
sortname: 'id',
viewrecords: true, sortorder: "desc",
jsonReader: { repeatitems: false, id: "0" },
caption: "JSON Mapping", height: '100%'
});
jQuery("#jsonmap").jqGrid('navGrid', '#pjmap', { edit: false, add: false, del: false,search:false });
});
{"page": 1,"total": 2,"records": 15,"rows": [{"id": 1, "name":"giri", "email":"giri"}, {"id": 2, "name":"ravi", "email":"giri"},{"id": 3, "name":"kumar", "email":"giri"}, {"id": 4, "name":"raju", "email":"giri"}, {"id": 5, "name":"madhu", "email":"giri"},{"id": 6, "name":"vivek", "email":"giri"}, {"id": 7, "name":"radha", "email":"giri"}, {"id": 8, "name":"krishna", "email":"giri"}, {"id": 9, "name":"raghu", "email":"giri"}, {"id": 10, "name":"bhaskar", "email":"giri"}, {"id": 11, "name":"bhaskar", "email":"giri"}, {"id": 12, "name":"bhaskar", "email":"giri"}, {"id": 13, "name":"bhaskar", "email":"giri"}, {"id": 14, "name":"bhaskar", "email":"giri"}, {"id": 15, "name":"subbu", "email":"giri"}]}
答案 0 :(得分:2)
您在jqGrid中使用的url
将附加有关所需页面的信息。您需要使用QueryString
的{{1}}集合来获取参数。在之后,你必须在服务器端实现数据分页。
HttpContext
如果用户点击网格的下一页/上一页按钮,如果用户点击列标题对数据进行排序,新请求将被发送到服务器。因此,在使用public class Handler : IHttpHandler {
public void ProcessRequest (HttpContext context) {
string pageToLoad = context.Request.QueryString["page"];
string rowsPerPage = context.Request.QueryString["rows"];
string sortIndex = context.Request.QueryString["sidx"];
string sortDirection = context.Request.QueryString["sord"]; //"asc" or "desc"
...
}
}
或datatype:'json'
的情况下,服务器负责从正确的页面提供数据。在分页之前,应该先对数据进行排序。
如果您在服务器端实现数据分页时遇到问题,可以返回所有数据并在jqGrid参数列表中包含datatype:'xml'
。您应该了解,在使用loadonce:true
的情况下,数据将仅从服务器加载一次。首次加载后,loadonce:true
参数将更改为datatype
。
我建议您(如果可能的话)使用ASMX Web服务或更好的WFC服务作为Web的一部分,而不是使用ASP.NET Web Handler(ashx)的旧技术。