我需要将userData
传递给jqgrid,但找不到任何有关如何执行此操作的示例。这是我的尝试:
从服务器发送:
{ total: 25,
page: currentpage,
userData: {foo: 'bar'},
rows: myRows }
和jqgrid:
var data = jQuery("#grid").getGridParam('userData');
如何发送userData
并从jqgrid读取它?
编辑:我知道我的userData
正在发送,因为我可以在Fiddler中看到它。我想我只是坚持如何在客户端阅读它。
答案 0 :(得分:16)
一般来说,userData
的使用非常简单。 jqGrid支持从服务器发送任何其他数据,这些数据将与jqGrid数据一起保存。因此,如果jqGrid解析从服务器返回的数据,那么它只查找userdata
(不代表userData
!!!)并保存在内部参数{{1}中}。
userData
注意:输入数据中的默认属性必须是{ "total":25,
"page":1
"records":107,
"userdata": {"foo": "bar"},
"rows": [...] }
和 NOT userdata
,就像您目前一样。如果您使用userData
或jsonReader: {userdata: "userData"}
作为您additional data的媒体资源名称,则可以覆盖输入媒体资源jsonReader: {userdata: "myData"}
或userData
的默认名称。
myData
的标准用法之一是jqGrid中的displaying of the footer。您可以将数据用于您的其他建议。在another answer中显示了如何使用userData
在从服务器加载数据后直接选择某些行/行。
如果您使用userData
参数,则loadonce:true
的使用会有点棘手,因为在第一次加载后,参数userData
中的数据将被删除,因此您必须保存在外部对象中。
原因是您只能在加载数据后才能访问userData
userData
。所以你应该在loadComplete事件句柄或更高版本中执行此操作。在loadComplete事件句柄内部,您可以访问通过loadComplete事件的jQuery("#grid").getGridParam('userData')
参数从服务器发送给您的所有数据。因此,您可以阅读任何其他附加数据并将其保存在某处。
答案 1 :(得分:1)
jqGrid默认接受此格式的JSON。
{"rows":
[{"foo":"bar"}]
}
并设置jqgrid选项,你会做这样的事情:
$("#cashflow-sheet").jqGrid({
url:'bbc-json.html',
datatype: "json",
...