jqgrid中的分页

时间:2015-10-05 07:28:50

标签: jquery jqgrid pagination

下午好,我直接为拼写而不是识字而道歉,我非常了解英语。 以下问题 - 我无法在jqgrid中浏览页面,通常应该这样:

onPaging : function(pgButton)
{
     var nextPg = $("#users").getGridParam("page");
     $("#editGrid").trigger("reloadGrid",[{page:nextPg}]);
}
在我看来,或锁定代码或不够的代码。提示出现了什么问题?

代码:

        sortname: 'id',
        sortorder: "desc",
        height: '100%',
        gridview: true,
        viewrecords: true,
        rowNum: 100,         
        rowList: [100, 500, 1000],
        autoencode: true,
        loadonce:true, 
        pager: '#pager', 
        search:true,
        multiselect: true,
        autowidth: true, 
        onPaging : function(pgButton){

         var nextPg = $("#users").getGridParam("page");
         $("#editGrid").trigger("reloadGrid",[{page:nextPg}]);
        },

我写了分页,但代码很大,最好用更方便和更小的代码替换它。

2 个答案:

答案 0 :(得分:0)

如果您使用loadonce:true选项,则服务器应返回所有数据,而不是仅返回一页的数据。如果您需要显示的行数不是很多(例如少于1000行),则loadonce:true选项的使用非常实用。因此,您应该删除修改服务器代码的loadonce:true选项,以便立即返回所有页面

如果您确实有一些复杂的场景,并且需要使用loadonce:true,但要实现服务器端分页,那么您应该在datatype内将"local"设置为onPaging。您不应该直接在reloadGrid内拨打onPaging。 jqGrid自己这样做。

答案 1 :(得分:0)

顺便说一下它的有趣之处(我不知道它的优化程度),我这样做了: 在js

onPaging : function(pgButton){
            var gridParamRowNum = $('#users').getGridParam('rowNum');
            var gridParamRowAll = $('#users').getGridParam('records');
            var gridParamPage = $('#users').getGridParam('page');
            if(pgButton === 'next_pager') 
            {
                gridParamPage = gridParamPage + 1;
            }else
            {
                gridParamPage = gridParamPage - 1;
                gridParamRowAll = gridParamRowAll + 100;
            }
                AdminUsers.ajaxParams.gridParamPage = gridParamRowNum * gridParamPage - 100;
                AdminUsers.ajaxParams.gridParamRowNum = gridParamRowAll;
        },

其中AdminUsers.ajaxParams.gridParamPage和AdminUsers.ajaxParams.gridParamRowNum是服务器的POST请求,

和php:

if ( isset($_REQUEST['gridParamPage']) && isset($_REQUEST['gridParamRowNum'])) {
        $limit = $_REQUEST['gridParamRowNum'];
        $offset = $_REQUEST['gridParamPage'];
        $usersFactory->setLimit((int)$limit)->setOffset((int)$offset);
    }

并通过setLimit和setOffset函数将查询输出并发送给客户端