In general the usage of userData
is pretty simple. jqGrid give you support to send from the server any additional data which will be saved together with the jqGrid data. So if jqGrid parse the data returned from the server it just look for userdata
(not for userData
!!!) and save is in the internal parameter userData
.
{ "total":25,
"page":1
"records":107,
"userdata": {"foo": "bar"},
"rows": [...] }
Be careful: the default property in the input data must be userdata
and NOT userData
like you currently have. You can overwrite the default name of input property jsonReader: {userdata: "userData"}
or jsonReader: {userdata: "myData"}
if you use userData
or myData
as the property name with your additional data.
One from the standard usage of userData
is for displaying of the footer in the jqGrid. You can use the data for any your other propose. In another answer it is shown how to use userData
to select the some row/rows directly after the loading data from the server.
If you use loadonce:true
parameter, the usage of userData
will be a little more tricky because after the first load the data from the parameter userData
will be deleted, so you have to save there in the external object.
Of cause you can access the userData
with respect of jQuery("#grid").getGridParam('userData')
only after the data are loaded. So you should do this inside of loadComplete event handle or later. By the way inside of loadComplete event handle you can access to all data which are send to you from the server through data
parameter of loadComplete event. So you can read any other additional data and save there somewhere.