проблема нумерации страниц jqGrid - PullRequest
0 голосов
/ 18 июня 2011

Я использую 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 Ответ

1 голос
/ 18 июня 2011

Проблема в том, что вы должны звонить 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, я бы рекомендовал включить в row дополнительное свойство id, которое будет использоваться в качестве rowid. Значение идентификаторов всех элементов HTML, используемых на странице, должно быть уникальным.

Вместо воссоздания div#detailTable содержимого, как вы, вы можете просто позвонить GridUnload (см. здесь для примера). Вам действительно нужно воссоздать сетку, а не просто изменить ее содержимое? Чтобы изменить сетку, вы можете просто установить data параметр jqGrid относительно setGridParam и вызвать .trigger("reloadGrid").

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...