如何读取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 。 如果使用userDatamyData作为属性名称和附加数据,则可以覆盖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", ...