В ответе на ваш предыдущий вопрос я попытался объяснить, как расширить jqGrid для поддержки нового метода. Честно говоря, я не вижу, какое реальное преимущество вы получите от расширения jqGrid. Почему бы просто не определить свою функцию как
var myrows = function(grid,data) {
// function body
};
и используйте его так:
myrows($("#myGrid"),jsonDataObject);
Гораздо важнее, на мой взгляд, реализация того, что вам нужно. Ваш текущий код имеет много недостатков. Если сетка имеет datatype: "local"
, то можно использовать локальный пейджинг данных. Метод addJSONData
добавляет все данные в сетку, поэтому размер страницы может быть нарушен.
Если у вас есть datatype: "local"
и вы хотите заполнить его данными, то наиболее эффективным способом будет установить data
параметр сетки относительно setGridParam
, а затем просто позвонить $("#myGrid").trigger('reloadGrid',[{page:1}])
(см. здесь ).
В качестве альтернативы вы можете использовать многие другие существующие методы, такие как addRowData , который позволяет добавлять множество строк данных за один вызов метода.
Если вы получите данные JSON с сервера и сможете заполнить сетку методом addJSONData
, это будет действительно плохой путь. Версии jqGrid, начиная с версии 3.5, имеют богатые способы настройки используемого запроса ajax
. Поэтому строго рекомендуется не использовать addJSONData
в этом случае. Подробнее см. здесь .