如何获得json格式的jqGrid过滤数据?

如何获得json格式的jqGrid过滤数据?,jqgrid,Jqgrid,我想在我的控制器中获取jqGrid的数据。我正在使用此工具获取jqGrid的所有数据 $("#gridSourceKey").jqGrid('getGridParam', 'data') 但我需要JSON格式的过滤数据。如何获取它?jqGrid的旧版本(您使用的jqGrid 4.3.2)无法获取过滤数据。因此,您必须升级到并使用 $(“#gridSourceKey”).jqGrid('getGridParam','lastSelectedData')) 而不是 $(“#gridSourceK

我想在我的控制器中获取
jqGrid
的数据。我正在使用此工具获取
jqGrid
的所有数据

$("#gridSourceKey").jqGrid('getGridParam', 'data')
但我需要JSON格式的过滤数据。如何获取它?

jqGrid的旧版本(您使用的jqGrid 4.3.2)无法获取过滤数据。因此,您必须升级到并使用

$(“#gridSourceKey”).jqGrid('getGridParam','lastSelectedData'))
而不是

$(“#gridSourceKey”).jqGrid('getGridParam','data'))

只有当您确实无法更新使用的jqGrid时,才应遵循中描述的棘手解决方案。解决方案包括三个步骤:1)将原始内部jqGrid函数
$.jgrid.from
覆盖(子类化)到将最后过滤结果保存在本地
lastSelected
变量中的函数。2)
loadComplete
将本地
lastSelected
变量的结果放入新的自定义jqGrid参数
lastSelected
。3) 使用
$(“#gridSourceKey”).jqGrid('getGridParam','lastSelected')

我认为jqGrid已经从控制器获取了数据。为什么需要将相同的数据发送回服务器?您可能只需要筛选行的ID?服务器可以直接从数据库获取其他信息。此外,了解您使用的jqGrid的哪个分支以及在哪个版本中非常重要。我有两段代码1)var gridData=$(“#grid”).jqGrid('getGridParam','data');var postData=JSON.stringify(gridData);警报(“gridData-”+postData);2) var gridData1=$(“#grid”).jqGrid('getRowData');var postData1=JSON.stringify(gridData1);警报(“gridData-”+postData1);在第一个区块中,我可以使用JSON.stringify()解析网格数据,并可以得到键值对格式的JSON字符串。在第二个块中,如果我使用JSON.stringify()它将为我提供html。如何从“gridData1”获取json数据?如果你想让我问你的问题,你也应该回答我的问题。2)
getRowData
如果所需数据不在当前页面上,则无法提供完整数据。3)
getRowData
获取未格式化的数据。如果没有正确填写或使用不正确的
colModel
属性(如没有
unformat
的自定义
格式设置程序
),则单元格的HTML代码片段可能会出现问题。4) 结果在jqGrid的不同版本中可能不同5)可以使用
getDataIDs
获取当前页面上的行ID,也可以使用
getLocalRow
获取特定行的数据。我无法添加新问题。所以我在这里自己写问题。function exportExcel(){var gridData=$(“#grid”).jqGrid('getGridParam','data');var postData=JSON.stringify(gridData);$.ajax({type:'POST',contentType:'application/JSON',url:${exportExcelUrl}),数据:postData成功:函数(响应){if(response==“SUCCESS”){window.location.href=${downloadOfferListExcelUrl}}}}这是我的代码,但我只需要过滤数据。因此,如果我调用JSON.stringify(gridData),我会编写var gridData=$(“#grid”).jqGrid('getRowData')它将为我提供json键值对字符串。但在值中我将获得html。此外,我需要将此json数据传递给我的控制器,这将不起作用。因为控制器需要正确的键值对(但不是值中的html)非常感谢Oleg。从过去4天以来,我一直在为这个问题苦苦挣扎。每天我都会把头撞在桌子上。现在终于开始工作了。这是通过覆盖$jgrid.from的select方法完成的。我将在其他场景中测试它。非常感谢你。@MohanThakare:不客气!如果问题解决了,你应该给出答案。我仍然会重新测试它推荐您考虑更新旧JQGRAT4.3.2来释放JQGRID。它是我开发的JQGRID的分支。因此,我可以很容易地修复任何可能的问题(例如bug)。通过更改代码。如果您要使用旧的jqGrid 4.3.2,您将永远不会得到错误修复。新版本中已解决的新解决方案也将永远不会为旧版本创建。@MohanThakare:您是否单击了[“接受”](“”)中的链接?这里描述了所有内容以及图片。要接受答案,只需单击“v”“答案左边的符号。这样你会增加你的声誉。