2010-06-27 3 views
3

У меня возникли проблемы с пониманием того, что означает все поля в источнике данных JSON для jqGrid, и я не вижу никакой документации для этого в любом месте.JSON и jqGrid. Что такое «userdata»?

Пример, который я пытаюсь понять это: http://www.trirand.com/blog/jqgrid/jqgrid.html, а затем первый пример в разделе «JSON данных»

Данные JSON можно получить здесь: http://www.trirand.com/blog/jqgrid/server.php?q=2&rows=10&page=2

Одна из вещей, которые смущают меня в JSON это snipplet:

"userdata":{"amount":1520,"tax":202,"total":1724,"name":"Totals:"} 

Что именно это делает?

ответ

7

Это очень легко объяснить. Сервер создает данные, которые будут использоваться для заполнения сетки. Данные могут быть выгружены. Поэтому в URL-адресе на сервер вы можете найти rows=10&page=2, что означает «дайте мне вторую страницу данных, когда размер страницы составляет 10 строк». Эти дополнительные параметры будут добавлены к основному URL-адресу «server.php? Q = 2», определенному как один из параметров jqGrid. Сервер возвращает 10 или менее строк. В случае http://www.trirand.com/blog/jqgrid/server.php?q=2&rows=10&page=2 URL сервер возвращает только три последние строки (из всего 10)

{"page":"2", 
"total":2, 
"records":"13", 
"rows":[ 
    {"id":"11","cell":["11","2007-10-06","Client 1","600.00","120.00","720.00",null]}, 
    {"id":"12","cell":["12","2007-10-06","Client 2","700.00","140.00","840.00",null]}, 
    {"id":"13","cell":["13","2007-10-06","Client 3","1000.00","0.00","1000.00",null]} 
], 
"userdata":{"amount":2300,"tax":260,"total":2560,"name":"Totals:"} 
} 

Теперь о вашей основной вопрос: что такое «UserData»? Существует старый способ отправки дополнительной информации с сервера клиенту вместе с основными данными. Это могут быть абсолютно свободные данные. Все данные, полученные с сервера, будут обрабатываться jqGrid по так называемому jsonReader (см. http://www.trirand.com/jqgridwiki/doku.php?id=wiki:retrieving_data#json_data). Стандартный JSON-ридер определяется так, что он считывает данные userdata из корня отправленных данных и просто сохраняет их. Эти данные доступны в отношении

var myUserData = jQuery("grid_id").getGridParam('userData'); 

(см http://www.trirand.com/jqgridwiki/doku.php?id=wiki:retrieving_data#user_data).

Начиная с версии 3.5 jqGrid, в jqGrid можно добавить дополнительную последнюю строку, которая может сыграть роль «Сводная строка нижнего колонтитула» (см. На странице http://www.trirand.com/blog/jqgrid/jqgrid.html в разделе «Новое в версии 3.5», «Сводная строка нижнего колонтитула»). Теперь вы можете видеть, что URL-адрес в примере абсолютно одинаковый: «server.php? Q = 2». Таким образом, в первом примере userdata не будет использоваться, но он будет использоваться в примере «Summary Footer Row».

1

Это, по-видимому, сумма столбцов «Сумма» «Налог» и «Всего» на второй странице с разбивкой по страницам, предполагая, что сетка упорядочена по «Inv No» с низким до высокого.

Эти значения, по-видимому, не используются этой конкретной сеткой, но, возможно, они используются в одном из других живых примеров, поэтому они есть.

Смежные вопросы