【问题标题】:jqGrid with user-custom advanced search and addJSONData population具有用户自定义高级搜索和 addJSONData 填充的 jqGrid
【发布时间】:2012-04-23 16:03:56
【问题描述】:

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

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

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

所以 问题 是:如果我使用 setGridParam 更改 filters 以包含与在搜索导航的过程。当onPaging 事件被触发并且使用简单的逻辑指示正在为搜索的数据进行分页时,这可能会发生?

非常感谢。

【问题讨论】:

    标签: jquery jqgrid


    【解决方案1】:

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

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

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

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

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

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

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

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

    【讨论】:

    • 您是说将从自定义搜索对话框获得的搜索信息添加到postData 然后reloadGrid 将保留任何未来的nextprevious 分页?
    • 我不确定我是否理解您的意思。 “下一个”和“上一个”分页是什么意思?您能否指定要支持的datatypeloadonce 的哪些值?您的标准情况是:本地搜索还是在服务器上搜索?来自postData 的任何信息都将发送到服务器,但并非所有信息都会在本地过滤中进行解释。
    • 很抱歉,如果不清楚。 “下一个”和“上一个”分页是当用户尝试查看网格中的其他页面时的意思,这些页面填充了从服务器获得的搜索数据JSON。在这种情况下,网格设置为loadonce = falsedatatype = 'json'。我并没有尝试对从搜索结果中获取的本地数据进行分页,而是在服务器端,我只是在考虑未来以防万一获得的搜索数据太大而无法在本地缓存。
    • @nawar:如果用户点击“Next”或“Previous”按钮,或者如果用户直接输入任何页码,它只会改变jqGrid的page参数。紧接着,网格将被重新加载,来自postData 参数、page 参数、rowNum 参数(如rows)和其他一些参数的数据将被发送到服务器。参数名称由prmNames 定义。所以没有与服务器的搜索和分页通信。它将始终只使用url 参数并发送其他参数。
    • 太好了,我相信现在更清楚了;鉴于在更改postData 以包含搜索条件后,未来的分页将由 jqGrid 处理(每次请求新页面时都会向服务器发送一个请求)。感谢@Oleg 的帮助和及时的回复,这为我节省了很多时间:)
    猜你喜欢
    • 2012-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多