Jqgrid:网格加载后加载数据?

时间:2012-01-04 06:01:53

标签: jqgrid

我正在使用jqgrid 4.0。网格使用'local'数据类型加载页面加载,loadonce:'true'并且我不想使用分页。由于要加载的数据很大,因此加载需要很长时间。我怎么能

  1. 首先只使用标题加载网格,将加载文本显示为“loading ....”然后加载数据?现在,网格和数据一起加载,页面不会出现,直到完成。

  2. 在网格中加载数据的速度更快?

  3. 下面是我的代码片段,其中'data'是由服务器端组成的json编码数组。

    <script type="text/javascript">
        jQuery("#list9").jqGrid({
            data: data,
            datatype: "local", 
            colNames:[...],
            colModel:[...],
            sortname: 'fld_name',
            rowNum: '-1',
            loadonce:true, 
            mtype: "GET",
            gridview: true,
            viewrecords: true,
            sortorder: "asc",
            pager: '#pager9',
            rownumbers: true,
            multiselect: false,
            width: '100%',
            pgbuttons:false,
                    pgtext:'',
            loadtext: 'loading....',
            ignoreCase: true
            });
    
    jQuery("#list9").jqGrid('filterToolbar', {stringResult: true,searchOnEnter : false}); 
    $('.ui-widget-header').css("background", "#7B9FBC");
    $('.ui-jqgrid-sortable').css("text-align", "left");
    
    
    </script>
    

1 个答案:

答案 0 :(得分:1)

我的工作是:

首先,渲染没有任何数据的网格。

var grid = $('#myGrid'); 
grid.jqGrid({   
    data: [],
    datatype: "local",
    colModel: [ ...

然后,使用addRowData将数据添加到网格中。

var grid = $('#myGrid');
grid.jqGrid('addRowData', 'ContactID', newRowData, 'first');

听起来你在构建网格时已将数据存储在内存中,并且渲染网格只需要很长时间。这可能是因为渲染网格时创建的所有DOM对象。除了分页之外,你没有什么可以做的,或者如果你使用大量的格式化,你可以降低单元格的复杂性。