如何读取jqgrid中的userData?
我需要将userData传递给jqgrid ,但找不到如何做到这一点的任何示例。 这是我的尝试:
从服务器发送:
{ total: 25, page: currentpage, userData: {foo: 'bar'}, rows: myRows }
并在jqgrid:
var data = jQuery("#grid").getGridParam('userData');
我如何发送userData并从jqgrid读取?
编辑:我知道我的userData正在发送,因为我可以看到它在提琴手 。 我想我只是坚持如何在客户端阅读它。
一般来说, userData的使用非常简单。 jqGrid支持从服务器发送任何额外的数据,这些数据将与jqGrid数据一起保存 。 所以,如果jqGridparsing从服务器返回的数据,那么它只是寻找userdata ( 不适用于userData !!!),保存在内部参数userData 。
{ "total":25, "page":1 "records":107, "userdata": {"foo": "bar"}, "rows": [...] }
请注意:input数据中的默认属性必须是userdata而不是您当前拥有的userData 。 如果使用userData或myData作为属性名称和附加数据,则可以覆盖input属性jsonReader: {userdata: "userData"}的默认名称jsonReader: {userdata: "userData"}或jsonReader: {userdata: "myData"} 。
一个来自userData的标准用法是用于显示 jqGrid 中的页脚 。 您可以将这些数据用于您的任何其他build议。 在另一个答案是显示如何使用userData从服务器加载数据后直接select一些行/行。
如果使用loadonce:true参数,那么userData的用法会更加棘手,因为在第一次加载之后,参数userData的数据将被删除,因此您必须将其保存在外部对象中。
因为你只能在加载数据之后才能访问关于jQuery("#grid").getGridParam('userData') 。 所以你应该在loadComplete事件句柄或更高版本中执行此操作。 顺便说一句,在loadComplete事件句柄中,你可以通过loadComplete事件的data参数访问从服务器发送给你的所有数据。 所以你可以读任何其他的数据并保存在那里。
jqGrid默认接受这种格式的JSON。
{"rows": [{"foo":"bar"}] }
并设置jqgrid选项,你会做这样的事情:
$("#cashflow-sheet").jqGrid({ url:'bbc-json.html', datatype: "json", ...