看来在这方面有几个关于这个问题的问题,他们有一些很好的答案,但似乎我的情况有点不同。我需要过滤jqGrid中显示的记录,但完全是客户端。jqGrid Filtering Records
由于多种原因,我填充网格的最佳方式是直接将数组发送到页面上的JavaScript中。网格本身根本不与服务器交互。我有一些自定义的AJAX发生在各种网格事件中,但就是这样。 (基本上,我正在将这与现有的一组可用服务集成在一起,这些服务不会发生显着变化。)
我正在做的是根据简单的文本输入和按钮过滤网格。我的页面上有文本输入,按钮和一个表格(它成为文档准备好的网格)。我想绑定到按钮的click事件(正常的jQuery事件绑定,没有什么特别的),并使用来自文本输入的值作为jqGrid上的显示过滤器。
“filter”我的意思是只显示包含输入文本匹配(在任何字段中)的记录。然后,要显示所有记录,只需清空输入并再次点击按钮。另外,网格是多选的,选择需要通过过滤持续。我只需要能够隐藏与输入内容不匹配的行。
这可能吗?
这看起来不错,谢谢!有几件奇怪的事情正在发生。 1:在我的客户端提供的环境中,IE 8(我的项目的唯一目标浏览器,客户端订单)中表示“JSON”未定义。但它不会在你的演示中在同一个浏览器上说这个。 2:在你设置的演示中,它不保存在过滤之间的行选择。选择,隐藏,然后取消隐藏的行不再被选中。然而,在实现这一点的同时,我有一个想法,可以更简单,更本地与jqGrid ... – David 2011-04-21 22:30:58
如果,而不是过滤主网格,过滤功能弹出一个jQuery UI模式对话框(简单)自己的网格,它显示过滤的记录(我可以很容易地使用'grid1'中过滤的数据集填充'grid2'?我想最糟糕的情况是我复制数组和过滤器在一个循环与普通JS之前设置为数据' grid2')。然后用户选择他们想要的并关闭模态对话框。关闭时,我从'grid2'(简单)中获取选定的ID,并将它们设置为在'grid1'中选择(方便,演示在jqGrid站点上)。当然,清除'grid2'。思考? – David 2011-04-21 22:34:22
@David:你有''JSON'未定义'错误,因为你没有包含[json2.js](https://github.com/douglascrockford/JSON-js)。如果安装了更新[976662](http://support.microsoft.com/kb/976662),则IE8也支持“JSON”类。我建议你总是包含json2.js以确保'JSON.stringify'工作。 – Oleg 2011-04-22 05:20:29