【问题标题】:Jqgrid: Load data after Grid load?Jqgrid:网格加载后加载数据?
【发布时间】:2012-01-04 06:01:52
【问题描述】:

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

  1. 仅先加载带有标题的网格,将加载文本显示为“正在加载....”,然后加载数据?现在,网格和数据一起加载,页面在完成之前不会出现。

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

下面是我的代码 sn-p 其中“数据”是 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>

【问题讨论】:

    标签: jqgrid


    【解决方案1】:

    我做的是:

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

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

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

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

    听起来您在构建网格时已经将数据存储在内存中,而渲染网格只需要很长时间。这可能是因为在渲染网格时创建了所有 DOM 对象。除了分页之外,您无能为力,或者如果您使用重格式,则可以降低单元格的复杂性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-07
      • 1970-01-01
      • 2014-11-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多