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

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

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

  1. 创建一个对话框,用户可以在其中插入搜索所需的信息(不同于当前用于jqGrid的高级自定义搜索的信息)
  2. 请求发送到服务器并作为JSON检索,我可以使用addJSONData方法在网格中插入。
  3. jqGrid将保留搜索值的分页,以便在命中nextprevious按钮后,分页将正常工作(使用基于搜索条件的获取数据)。

所以问题是:如果我使用setGridParam更改filters以包含搜索导航过程中使用的相同data ,我可以让nextprevious导航对我setGridParam ? 当onPaging事件被触发并且使用简单的逻辑来指示搜索数据正在发生分页时,可能会发生这种情况?

非常感谢。

首先我要提一下,我对自定义搜索对话框的实现有点悲观。 原因是你会花很多时间在实施上。 我建议您在标准搜索对话框中使用自定义控件。 应用我建议的更改后 ,现在可以。

查看允许您创建搜索对话框的演示

在此处输入图像描述

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

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

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

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

如果要在postData.filters保存有关filter的信息,则必须保持标准格式 。 在这种情况下,您可以利用本地数据过滤( datatype: 'local'或使用loadonce: true )。 以答案为例,请参阅演示。

如果要在服务器端实现数据过滤, 只能使用任何格式的其他属性(请不要使用相同的名称filters )。 如果你想在页面上始终显示搜索filter(控件),我建议你使用postData属性作为函数的技术(参见答案 )。