我正在使用jqgrid 4.0。网格使用'local'数据类型加载页面加载,loadonce:'true'并且我不想使用分页。由于要加载的数据很大,因此加载需要很长时间。我怎么能
首先只使用标题加载网格,将加载文本显示为“loading ....”然后加载数据?现在,网格和数据一起加载,页面不会出现,直到完成。
在网格中加载数据的速度更快?
下面是我的代码片段,其中'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>
答案 0 :(得分:1)
我的工作是:
首先,渲染没有任何数据的网格。
var grid = $('#myGrid');
grid.jqGrid({
data: [],
datatype: "local",
colModel: [ ...
然后,使用addRowData将数据添加到网格中。
var grid = $('#myGrid');
grid.jqGrid('addRowData', 'ContactID', newRowData, 'first');
听起来你在构建网格时已将数据存储在内存中,并且渲染网格只需要很长时间。这可能是因为渲染网格时创建的所有DOM对象。除了分页之外,你没有什么可以做的,或者如果你使用大量的格式化,你可以降低单元格的复杂性。