JSON-данные в jqGrid

Цикл статей «Документация jqGrid на русском».

Следующая статья — «Строка с JSON в jqGrid».
Предыдущая статья — «JqGrid. Заметки и ограничения использования XML-данных».

Начиная с версии 3.6.5 возвращённая JSON-строка должна быть корректной JSON-строкой.
Для получения большей информации обратитесь  сюда и сюда.

Данные в формате JSON обрабатываются очень похоже на данные в формате XML. Очень важно, чтобы определение в jsonReader совпадало с получаемыми данными.

datatype : 'json'  или 'jsonp' , (или 'jsonstring' )

Определение по умолчанию jsonReader такое:

Если datatype равен 'json' , jqGrid ожидает следующий формат по умолчанию для JSON-данных:

Теги, используемые в этом примере, описаны в таблице ниже:

Тег Описание
total Общее количество страниц
page Текущая страница
records Общее количество записей
rows Массив с данными
id Уникальный id записи/строки
cell Массив с данными для записи/строки

Структура jsonReader очень похожа на структуру xmlReader. Единственная отсутствующая часть  — элемент row, который не нужен для JSON-данных. Давайте начнём нашу прогулку по jsonReader-у.

Первый элемент —

  • root

Этот элемент описывает, где начинаются наши данные. Другими словами, этот элемент указывает на массив с данными.  Если мы укажем так:

тогда возвращённая строка должна быть:

 

Элементы

  • page
  • total
  • records

описывают информацию, необходимую для постраничной навигации. Например, если jsonReader установлен так:

тогда данные должны быть:

 

Элемент

  • cell

описывает массив, содержащий данные для строки.

данные, подходящие для этого описания, должны быть:

Элемент

  • id

описывает уникальный идентификатор для строки.

Данные для этого описания:

Можно указывать пустую строку в качестве элемента cell. Также можно указывать значение элемента id числом. Пример:

В этом случае идентификатором будет первый элемент в строке данных.

Элемент

  • repeatitems

указывает jqGrid на то, что информация для данных в строке повторяемая. То есть элементы имеют тот же тег, что описан в свойстве cell. Установка этого свойства в false указывает, что jqGrid должен искать элементы  в JSON по имени. Это name из colModel или имя, описанное в свойстве jsonmap в colModel.

Пример:

Данные для нашего примера:

Элемент id в этом случае 'invid' .

Очень полезная особенность здесь (repeatitems:false) это то, что нет больше необходимость включать все данные, описанные в colModel.  Так как мы делаем поиск по имени, порядок элементов не обязан совпадать с порядком в colModel.  Следовательно, эта строка правильно интерпретируется в jqGrid:

 

Цикл статей «Документация jqGrid на русском».

Следующая статья — «Строка с JSON в jqGrid».
Предыдущая статья — «JqGrid. Заметки и ограничения использования XML-данных».

Один комментарий к “JSON-данные в jqGrid”

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *