我正在使用jqGrid。分页没有得到反映,可能是什么问题?我检查了Firefox 4.1和IE8,但在chrome上根本没有显示jqGrid。
var filesystem=[];
$(xml).find('file').each(function(){
var row={};
row.total=$(this).attr('total');
row.free=$(this).attr('free');
row.used=$(this).attr('used');
row.percentage=$(this).attr('percentage');
filesystem.push(row);
});
$('#detailTable').empty();
$('<div>')
.attr('id','diskUsageSpan')
.html('<div class="titleBlue">Configuration>System>Disk Usage</div>'+
'<table id="list1"></table>'+
'<div id="gridpager"></div>'+
'</div>')
.appendTo('#detailTable');
更新
jQuery("#list1").jqGrid({
datatype: "clientSide",
height: 250,
colNames:['id','Total Space','Free Space', 'Used Space', 'Used Percentage'],
colModel:[
{name:'id',index:'id', width:90, align:"right"},
{name:'total',index:'total', width:90, align:"right"},
{name:'free',index:'free', width:90, align:"right"},
{name:'used',index:'used', width:90, align:"right"},
{name:'percentage',index:'percentage', width:120, align:"right"}
],
pagination:true,
pager : '#gridpager',
rowNum:10,
viewrecords: true,
gridview: true,
edit:false,
add:false,
del:false
});
for(var i=0;i<filesystem.length;i++)
jQuery("#list1").jqGrid('addRowData',i+1,filesystem[i]);
jQuery("#list1").setGridParam({rowNum:10}).trigger("reloadGrid");
答案 0 :(得分:1)
问题是,您应该在reloadGrid
圣人之后拨打addRowData
,而不是之前。
最好的方法是使用data
参数:
var grid = jQuery("#list1");
grid.jqGrid({
datatype: "local",
data: filesystem, // here!!!
height: "auto", // it can be better if you don't need the fix hight
colNames: ['Total Space','Free Space', 'Used Space', 'Used Percentage'],
colModel: [
{name:'total',index:'total', width:90, align:"right"},
{name:'free',index:'free', width:90, align:"right"},
{name:'used',index:'used', width:90, align:"right"},
{name:'percentage',index:'percentage', width:120, align:"right"}
],
pager : '#gridpager',
rowNum:10,
rowList:[10,20,30],
viewrecords: true,
gridview: true
});
grid.jqGrid('navGrid','#gridpager',{edit:false,add:false,del:false});
不需要重新加载网格。
如果您为row
填写filesystem
,我建议您在id
中添加额外的row
属性,该属性将用作rowid。页面上使用的所有HTML元素的id值必须是唯一的。
您可以只调用GridUnload而不是重新创建div#detailTable
包含here(例如,请参阅{{3}})。你真的需要重新创建网格,而不只是改变网格包含?要更改网格包含,您只需设置jqGrid的data
参数setGridParam
并调用.trigger("reloadGrid")
。