Как читать userData в jqgrid? - PullRequest
       41

Как читать userData в jqgrid?

6 голосов
/ 03 октября 2010

Мне нужно передать userData в jqgrid , но я не могу найти примеры того, как это сделать. Вот моя попытка:

Отправлено с сервера:

{ total: 25,
  page: currentpage,
  userData: {foo: 'bar'},
  rows: myRows }

и в jqgrid:

var data = jQuery("#grid").getGridParam('userData');

Как я могу отправить userData и прочитать его из jqgrid?

РЕДАКТИРОВАТЬ: я знаю, что мой userData отправляется, потому что я вижу это в Fiddler . Я думаю, что просто застрял на том, как читать это на стороне клиента.

Ответы [ 2 ]

16 голосов
/ 03 октября 2010

В общем, использование userData довольно просто.jqGrid поддерживает отправку с сервера любых дополнительных данных, которые будут сохранены вместе с данными jqGrid .Таким образом, если jqGrid анализирует данные, возвращенные с сервера, он просто ищет userdata (, а не для userData !!!) и сохраняет во внутреннем параметре userData.

{ "total":25,
  "page":1
  "records":107,
  "userdata": {"foo": "bar"},
  "rows": [...] }

Будьте осторожны: свойство по умолчанию во входных данных должно быть userdata и NOT userData, как у вас сейчас.Вы можете перезаписать имя по умолчанию для входного свойства jsonReader: {userdata: "userData"} или jsonReader: {userdata: "myData"}, если вы используете userData или myData в качестве имени свойства со своими дополнительными данными .

Один изстандартное использование userData для отображения нижнего колонтитула в jqGrid.Вы можете использовать данные для любых других ваших предложений.В другом ответе показано, как использовать userData для выбора ряда строк / строк непосредственно после загрузки данных с сервера.

Если вы используете параметр loadonce:true, использованиеиз userData будет немного сложнее, потому что после первой загрузки данные из параметра userData будут удалены, поэтому вам нужно сохранить их во внешнем объекте.

Конечно, вы можете получить доступ кuserData относительно jQuery("#grid").getGridParam('userData') только после загрузки данных.Таким образом, вы должны сделать это внутри loadComplete дескриптор события или позже.Кстати, внутри дескриптора события loadComplete вы можете получить доступ к всем данным, которые отправляются вам с сервера через параметр data события loadComplete .Таким образом, вы можете прочитать любые другие дополнительные данные и сохранить их где-нибудь.

1 голос
/ 03 октября 2010

jqGrid по умолчанию принимает JSON в этом формате.

{"rows":
    [{"foo":"bar"}]
}

и, установив параметры jqgrid, вы сделаете что-то вроде этого:

$("#cashflow-sheet").jqGrid({
    url:'bbc-json.html',
    datatype: "json",
        ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...