jqGrid: новое свойство данных в 3.7 - есть ли метод setData? - PullRequest
2 голосов
/ 19 июля 2010

Мое приложение снова и снова заполняет jqGrid результатами множества различных запросов, которые пользователь может сделать; запросы принимают форму: дайте мне заголовок, documentCategory, хиты, documentType для всех документов, где документ содержит слово «x». Пользователь может сделать много таких (ajax) запросов, один за другим: Запрос на выдачу. Прочитайте список названий, возвращаемых базой данных. Поработай немного. Сделайте еще один такой запрос. И так далее и тому подобное.

Я создаю сетку один раз, и когда вызов базы данных ajax возвращается с некоторыми данными, сетка сначала депопулируется, а затем снова заполняется, например:

 $("#titles-table").jqGrid('clearGridData');
 .
 .
 .  // loop through the data returned by the ajax database call
      for (var i = 0 ...
      {
        row = ...
        $("#titles-table").jqGrid('addRowData',i, row); 
      }

Но теперь с версией 3.7 сетка имеет новое свойство data, которое предположительно быстрее, чем addRowData . Примеры, демонстрирующие это новое свойство data , показывают, что сетка заполняется по мере ее создания (как определено colModel и т. Д. И т. Д.). Но если предположить, что сетка уже существует и будет удалена с помощью вызова clearGridData , то есть ли способ установить свойство сетки data для повторного заполнения сетки? Нечто аналогичное clearGridData, например:

  $(#titles-table).jqGrid('setGridData', data);

Меня интересует более быстрый способ заполнения сетки. Firefox отображает сообщение «скрипт занимает слишком много времени», когда моя сетка имеет 75 строк, но Chrome, Opera и Safari мгновенно вспыхивают при таком количестве данных.

Ответы [ 2 ]

0 голосов
/ 17 января 2012
$('#table').addJSONData(data);
0 голосов
/ 19 июля 2010

Согласно документации jqGrid , эту опцию можно изменить после создания сетки с помощью setGridParam. Например:

$(#titles-table).jqGrid('setGridParam', data);
...