【问题标题】:JQGrid, Search related issueJQGrid,搜索相关问题
【发布时间】:2023-09-20 21:00:01
【问题描述】:

在向服务器发送请求之前,是否需要验证搜索字段(我正在使用自定义搜索)?验证在行编辑和添加模式下工作正常。假设我想搜索列价格,当用户在搜索字段中输入文本时应该出现错误消息。 如果搜索没有返回数据,我想在屏幕上发布一条消息。我在搜索功能中看不到可以获取服务器响应的事件。 onClose 事件是在搜索框关闭的时候发生的,但是我不知道如何获取服务器的响应?

另一个问题,我尝试使用 gridResize 但它不起作用,其他一切正常,我在右下角看不到调整大小图标。请看下面我的代码:

jQuery("#list").jqGrid('gridResize',{minWidth:350,maxWidth:800,minHeight:80, 最大高度:350});

【问题讨论】:

    标签: search jqgrid


    【解决方案1】:

    您关于自定义搜索验证的部分问题似乎与我回答的here 相同。答案包括the demo,其中包含“客户”字段的验证。

    怎么看,自定义搜索是在jqGrid 4.0.0版本的grid.addons.js模块中移动的,所以在jqGrid之后的一些版本中可以去掉。

    对服务器没有特殊的搜索请求。仅存在填充网格的标准请求,其中_search 参数(对应于jqGrid 的search 参数)设置为true,而其他一些参数如filters 描述过滤条件。所以你可以使用jqGrid的emptyrecords参数(见here)。您可以关注the demo(参见the answer),它会在网格正文中显示消息。

    gridResize 的问题让我很容易接受。我想,您要么没有包含 jQuery UI JavaScript(仅包括 CSS 是不够的),要么您将 gridResize 的调用放在了错误的位置。您没有发布 JavaScript 代码和 HTML 代码,它们可以显示您已加载哪些 JavaScript 文件以及以何种顺序加载。所以我不能更准确地回答。

    【讨论】:

    • 您好,Oleg,感谢您的快速响应。我做的测试用例如下:我加载了一些行在其中的网格,然后我执行搜索,这将导致数据库中没有数据,我在 Firefox 中收到错误消息“找不到元素”,我的网格仍然停留在相同的。但是当我的研究返回一些数据时,这些数据将替换网格中的现有数据。我想这就是为什么当搜索没有返回数据时我没有收到 emptyrecords 消息的原因。我现在该怎么办?
    • 嗨,我自己找到了解决方案,在服务器端,我应该通过 jqgrid 返回确切所需的数据以显示空记录,然后才从服务器返回 null。无论如何,非常感谢您关于使用空记录的提示。关于搜索验证,我虽然在JQGrid中有内置的验证,但它没有,可能我只是在等待JQGrid的内置功能
    • @vuvan01:不客气!我不知道有一些计划在 jqGrid 中包含搜索验证,所以如果你需要它,你必须自己实现它。搜索的验证不能像其他验证一样工作。例如,如果您对列进行“包含”或“开始于”搜索操作,并且列包含的所有字符串必须至少为 5 个字符,例如您应该允许在搜索字段中输入少于 5 个字符。因此,搜索验证实际上与编辑期间不同。您可以尝试使用docs.jquery.com/Plugins/validation