В целом использование userData
довольно просто. jqGrid дает вам поддержку для отправки с сервера любых дополнительных данных , которые будут сохранены вместе с данными jqGrid. Поэтому, если jqGrid анализирует данные, возвращаемые с сервера, тогда он просто ищет userdata
(не для userData
!!!) и сохранить во внутреннем параметре userData
.
{ "total":25,
"page":1
"records":107,
"userdata": {"foo": "bar"},
"rows": [...] }
Будьте осторожны: свойство по умолчанию во входных данных должны быть userdata
и НЕuserData
, как вы в настоящее время. Вы можете переписать имя свойства ввода по умолчанию jsonReader: {userdata: "userData"}
или jsonReader: {userdata: "myData"}
, если вы используете userData
или myData
в качестве имени свойства с вашим additional data.
Один из стандартных использования userData
предназначен для displaying of the footer в jqGrid. Вы можете использовать данные для любого другого предложения. В another answer показано, как использовать userData
для выбора некоторых строк/строк непосредственно после загрузки данных с сервера.
Если вы используете loadonce:true
параметр, использование userData
будет немного сложнее, потому что после первой загрузки будут удалены данные из параметра userData
, так что вы должны сохранить там во внешнем объекте.
Вы можете получить доступ к userData
по отношению к jQuery("#grid").getGridParam('userData')
только после того, как данные будут загружены. Поэтому вы должны сделать это внутри дескриптора события loadComplete или позже. Кстати, внутри дескриптора события loadComplete вы можете получить доступ к всем данным, которые отправляются вам с сервера через data
параметр loadComplete. Таким образом, вы можете прочитать любые другие дополнительные данные и сохранить там где-нибудь.
Спасибо.В случае, если кто-нибудь прочтет это позже, резюме состоит в том, что при разговоре о GridParam это 'userData', иначе это' userdata'. Прочитайте 'userdata' в обработчике события loadloadplete. Чтобы установить 'postData' с' userdata', выполните следующие действия: 'loadComplete: function (data) {jQuery (" # ticketlist "). SetGridParam ({postData: {foo2: data.userdata.foo}};}' – royco
@Slack : Вы также можете использовать 'jQuery (« # grid »). GetGridParam ('userData')' внутри 'loadComplete' как' loadComplete: function() {jQuery ("# ticketlist"). SetGridParam ({postData: {foo2: jQuery ("# grid"). getGridParam ('userData'). foo}});} '. Важно только понимать, что при отправке данных с сервера нужно поместить 'userdata', и данные будут сохранены в параметре userData' jqGrid. Таким образом, он может быть доступен через getGridParam ('userData') '. Но самое главное, что теперь ваша программа работает и может использовать 'userdata' /' userData'. :-) – Oleg
man Я использую userData вместо userdata в генераторе json, и я схожу с ума, большое спасибо! +1 – Neo