jqgrid 分页不起作用...需要帮助

问题描述 投票:0回答:1

下面是我的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 }); 
            });
  • 我的json数据:

{"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"}]}

寻呼不起作用。谁能告诉我错误是什么? 谢谢...

jquery pagination jqgrid
1个回答
2
投票

您在 jqGrid 中使用的

url
将附加有关所需页面的信息。您需要使用
QueryString
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'
datatype:'xml'
,服务器负责提供来自正确页面的数据。在分页之前,应该先对数据进行排序。

如果您在服务器端实现数据分页时遇到问题,您可以返回所有数据并将

loadonce:true
包含在jqGrid参数列表中。您应该了解,在使用情况下
loadonce:true
,数据将从服务器加载仅一次。第一次加载后,
datatype
参数将更改为
'local'

我建议您(如果可能的话)使用 ASMX Web 服务或更好的 WFC 服务作为您 Web 的一部分,而不是使用非常古老的 ASP.NET Web Handler (ashx) 技术。

© www.soinside.com 2019 - 2024. All rights reserved.