jqGrid分页问题

时间:2011-06-18 08:19:05

标签: javascript jquery jqgrid

我正在使用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&gt;System&gt;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");

1 个答案:

答案 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")