jQGrid没有在滚动时加载下一页的记录

时间:2015-03-19 13:59:09

标签: jquery ajax jqgrid jqgrid-asp.net

我正在实施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
]}

1 个答案:

答案 0 :(得分:1)

jqGrid支持客户端排序服务器端排序

如果您使用loadonce: true,则服务器应将所有数据返回到网格。如果用户稍后单击列标题,则数据将按按jqGrid 排序。如果您只是通过调用filterToolbar添加过滤器工具栏,那么您将为用户提供过滤数据的可能性。您无需编写其他服务器代码。

您当前的代码从服务器加载数据页,并且不在本地保存任何数据(它仅将数据保存在HTML页面上)。因此,了解您必须在服务器端上实施排序,分页和可选的数据过滤/搜索非常重要。

要实现服务器端分页,您必须非常清楚客户端和服务器之间的接口。您应删除所有内容scroll: 1并添加pagertoppager。之后,您将在网格中看到如下所示的线(在网格的底部或顶部)

enter image description here

The server response应包含三个属性:pagetotalrecords,这些属性将放置在寻呼机上。其他寻呼机元素

enter image description here

允许用户更改页面大小并向服务器发送有关新页面数据的请求。如果jqGrid显示第一页,则禁用“First”和“Previous”按钮。如果jqGrid显示最后一页,则“Next”和“Last”按钮被禁用。 如果服务器响应中缺少属性pagetotalrecords,那么将禁用所有分页可能性,因为jqGrid将响应解释为唯一的页面数据

如果您使用scroll: 1而不是pagertoppager,则用户看不到寻呼机,但由于相同的原因导致分页被禁用。