Проблема в том, что вы должны звонить 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")
.