我一直想创建自己的搜索对话框来创建与 jqGrid 文档中提到的方法不同的搜索条件。这有很多原因,包括但不限于对日期范围的良好支持、更人性化的搜索对话等。
我只是想知道是否有人尝试过创建此流程,以及在投入实现之前作为创建您自己的复杂搜索的解决方法有多有效:
- 创建一个对话框,用户在其中插入搜索所需的信息(与当前 jqGrid 高级自定义搜索的对话框不同)
- 请求发送到服务器并以 JSON 形式检索,我可以使用
addJSONData
方法将其插入到网格中。 - jqGrid 将保留搜索值的分页,以便在按下
下一个
和上一个
按钮后分页能够正常工作(根据搜索条件获取数据)被击中。
所以问题是:如果我更改过滤器
,我可以使下一个
和上一个
导航对我有用吗? code> 使用 setGridParam
包含在搜索导航过程中使用的相同data
。当触发 onPaging
事件并且使用简单的逻辑指示正在对搜索的数据进行分页时,可能会发生这种情况?
非常感谢。
最佳答案
首先我可以提到,我对自定义搜索对话框的实现有点悲观。原因是您将在实现上投入大量时间。我建议您最好在标准搜索对话框中使用自定义控件。申请后the changes我建议现在这是可能的。
看看the demo它允许您创建搜索对话框,例如
以这种方式,您可以解决您在问题中描述的许多问题。
如果您决定创建自定义搜索对话框,则必须执行以下操作:
- 新的搜索对话框应在
postData
属性中添加有关搜索条件的信息。 - 使用
.trigger.("reloadGrid") 重新加载网格
您不需要向服务器发出单独的 Ajax 请求。您需要重新加载网格。
如果您想在 postData.filters
中保存有关过滤器的信息,您必须持有 the standard format 。在这种情况下,您可以利用本地数据过滤(datatype: 'local'
或使用 loadonce: true
)。请参阅 the answer 的演示举个例子。
如果您想在服务器端实现数据过滤,则只能使用任何格式的附加属性(请不要使用相同名称的filters
)。如果您希望搜索过滤器(控件)始终在页面上可见,我建议您使用将 postData
属性作为函数的技术(请参阅 the answer )。
关于jquery - jqGrid 具有用户自定义的高级搜索和 addJSONData 填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10284075/