服务器端的jqgrid分页

时间:2015-06-22 11:25:28

标签: jquery jqgrid server paging

我试图将服务器端分页添加到我的网格中。在adittion中,我有一个过滤器' license',' number'和' group'。当我按下一页按钮时,控制器被调用,我获取数据,但我的网格在第1页重新加载,我无法查看页面2或3或4 ......

在onPaging事件中,如果我使用本地数据类型没有显示数据,如果我使用json数据类型,我只能看到第一页。

这是代码:

var arrayData = [];
var pgevent;
var pager;
var accion;

$(function() {
    navLocal.cambia('002');

    $( "#tabs" ).tabs();
    $("#tblResults").jqGrid({
        mtype: 'POST',
        datatype: "local",
        height: 250,
        colNames:['license', 'id', 'number', 'brand', 'model', 'show'],
        colModel:[
            {name:'license',index:'license', width:110},
            {name:'id',index:'id', hidden: true},
            {name:'number',index:'number', width:110, sorttype:"int"},
            {name:'brand',index:'brand', width:250},
            {name:'model',index:'model', width:250},
            {name:'show',index:'show', width:60, align:"center", sortable:false, formatter:playerPicFormatter}      
        ],
        multiselect: false,         
        viewrecords: true,
        pager: "#jqGridPager",
        rowNum: 10,
        caption: "Results",
        width: 700,
        loadonce: true,

        rowList: [10,20,50],



        onPaging : function(pgButton) {
            $("#tblResults").setGridParam({datatype:'json'});
            find(); 
            pgevent = pgButton;
            pager = this.p.pager;



        },

        loadComplete: function () {
            $("#tblResults").setGridParam({datatype:'local'});
        }


    });     

    find(); 
}); 



function find() {

    var gridArrayData = [];

    $.ajax({
        url : "/find.htm",
        type : "POST",
        dataType : "json",
        data: {
            license: $("#license").val(),
            number: $("#number").val(),
            group: $("#group").val(),
            page: $("#tblResults").jqGrid().getGridParam('page'),
            rowNum: $("#tblResults").jqGrid().getGridParam('rowNum'),
            sortname: $("#tblResults").jqGrid().getGridParam('sortname'),
            sortorder: $("#tblResults").jqGrid().getGridParam('sortorder')

        },
        success : function(result) {

            jQuery('#tblResults').jqGrid('clearGridData');

            for ( var i = 0; i < result.length; i++) {
                var item = result[i];
                gridArrayData.push({
                    id : item.id,
                    license : item.license,
                    number : item.number,
                    brand : item.brand,
                    model : item.model

                });
            }
            // set the new data
            $("#tblResults").jqGrid('setGridParam', { 
                data : gridArrayData
            });

            // refresh the grid
            $("#tblResults").trigger('reloadGrid', [{page:2}]);
        },

        loadComplete: function () {
            $("#tblResults").setGridParam({datatype:'local'});
            }
    });

    arrayData = gridArrayData;

}

1 个答案:

答案 0 :(得分:0)

您正在使用find进行异步调用,但在回调中,您在查找后会有其他语句。这些将在查找完成之前执行。 这可能是问题吗?