jqGrid具有用户自定义高级搜索和addJSONData填充

时间:2012-04-23 16:03:57

标签: jquery jqgrid

我一直想到创建自己的搜索对话框来创建与jqGrid文档中提到的方法不同的搜索条件。这有很多原因,包括但不限于日期范围的良好支持,更加用户友好的搜索对话等。

我只是想知道是否有人尝试创建此流程,以及在开始实施之前创建自己的复杂搜索的解决方法的效果如何:

  1. 创建一个对话框,用户可以在其中插入搜索所需的信息(不同于当前用于jqGrid的高级自定义搜索的信息)
  2. 请求发送到服务器并作为JSON检索,我可以使用addJSONData方法在网格中插入。
  3. jqGrid将保留搜索值的分页,以便在nextprevious按钮被点击后,分页将正常工作(使用基于搜索条件的获取数据)。
  4. 所以问题是:如果我使用next更改previous,我可以让filterssetGridParam导航为我工作吗?包括搜索导航过程中使用的相同data。当onPaging事件被触发并且使用简单的逻辑指示搜索数据正在发生寻呼时,可能会发生这种情况?

    非常感谢。

1 个答案:

答案 0 :(得分:3)

首先,我可以提一下,我对自定义搜索对话框的实现有点悲观。原因是你将投入大量时间进行实施。我建议您最好在标准搜索对话框中使用自定义控件。应用我建议的the changes后,现在可以。

查看the demo,它允许您创建搜索对话框,如

enter image description here

在这种方式中,您可以解决您在问题中描述的许多问题。

如果您决定创建自定义搜索对话框,则必须执行以下操作:

  • 新搜索对话框应在postData属性中添加有关搜索条件的信息。
  • 使用.trigger.("reloadGrid")
  • 重新加载网格

您不需要向服务器发出单独的Ajax请求。重新加载网格是您需要做的。

如果您想在postData.filters中保存有关过滤器的信息,请保留the standard format。在这种情况下,您可以利用本地数据过滤(datatype: 'local'loadonce: true的使用)。以the answer为例,请参阅演示。

如果您想在服务器端上实施数据过滤,则只能使用任何格式的附加属性(请不要使用相同的名称filters)。如果您希望在页面上始终显示搜索过滤器(控件),我建议您使用postData属性作为函数的技术(请参阅the answer)。