第1页,共0页,即使jqgrid包含数据

时间:2019-01-26 05:48:39

标签: javascript free-jqgrid

我正在使用addRowData在ajax调用中将数据追加到网格。它正确显示数据,但在分页时显示Page 1 0f 0,这是不正确的。

我在jqgrid表属性中添加了rowNum:10。

$.ajax({
     url: 'getData',
     dataType: 'json',
     success: function (data) {
                $('#grid').jqGrid('clearGridData');
                for (var i = 0; i <= data.length; i++){
                                $("#grid").jqGrid('addRowData', i + 1, data[i]);
                            }
                $('#grid').setGridParam({rowNum:$('#grid').getGridParam('rowNum')});   

                }
        });

jqgrid表是-

$("#grid").jqGrid(
                {
                    width : 'auto',
                    height : 'auto',
                    colNames : [ 'First Name', 'Last Name'],
                    colModel : [ {
                        name : "firstName",
                        index : "firstName",
                        key:true,
                        width : 120,                                                    
                        search : true,
                        stype : "text"
                    }, {
                        name : "lastName",
                        index : "lastName",
                        width : 120,                                                    
                        search : true,
                        stype : "text"
                    },
                    multiselect : false,
                    iconSet: "fontAwesome",
                    datatype : "local", 
                    loadonce : true,                            
                    rowNum : 10,        
                    rowList : [ 10, 20, 30, 100000000 ],
                    loadtext : '', 
                    loadui : 'disable',
                    toppager:true,
                    pager : '#prowed2',
                    viewrecords : true,
                    loadComplete : function() {
                        $("option[value=100000000]").text('All');
                    },
                    gridComplete : function() {
                    }

                });

我希望显示数据,并且分页应该显示第1页,共1页

1 个答案:

答案 0 :(得分:0)

首先,您永远不要在循环中填充addRowData来填充网格。具有datatype: "local"的jqGrid支持data参数,用于创建网格并将其填充数据。秒,您要在一页上显示所有数据(如果行数很大,这是个坏主意),然后可以使用rowNum来获得足够大的值,例如1000,这将被解释为最多行,将显示在页面上。

要替换现有网格中的完整数据,可以替换data并触发reloadGrid事件。要替换数据,我建议使用getGridParam而不是setGridParam。没有参数的方法getGridParam返回所有内部网格参数的引用。因此,要替换data参数,您需要更改内部网格参数对象的data属性:

$.ajax({
    url: 'getData',
    dataType: 'json',
    success: function (data) {
        var $grid = $("#grid"),
            p = $grid.jqGrid("getGridParam"); // get reference to all parameters

        p.data = data; // replace data parameter
        $grid.trigger("reloadGrid", { page: 1 }); // display new data in the grid
    }
});