JQGrid searchrules and toolbar filtering error
我有一个工具栏过滤器设置可以在我的JQGrid上使用。我们最近有一项要求,只允许整数进入该字段。我更改了适当列的colModel,以便在进行搜索之前验证客户端。对javascript进行更改后,行为未更改。无论输入什么内容,验证似乎都不会在客户端进行,这使我相信我对搜索规则有误解。下面的代码
上一个
1 2 3
| colModel:[ ...,
{name:'version', search:true, stype:'text'}
,...,] |
发布更改
1 2 3
| colModel:[ ...,
{name:'version', search:true, stype:'text',searchrules:{required:true, integer:true}}
,...,] |
搜索规则不适用于工具栏筛选吗?该文档表明,除非我在某处缺少一行,否则它们会这样做。
感谢您的光临!
searchrules仅在搜索对话框中使用,而不在搜索过滤器中使用。作为解决方案,beforeSearch回调函数用于数据验证。您可以分析this.p.postData。如果搜索数据错误,则应显示错误对话框,然后执行其他任何操作,例如将\\'ui-state-error \\'或\\'ui-state-error-text \\'添加到输入错误数据的输入中,并返回true 。 Returning true value from the beforeSearch`处理程序将阻止应用搜索请求。
- 我想我现在可以工作了。只需获得适当的错误消息即可显示。谢谢!
-
无论搜索是否触发,afterSearch都会被调用吗?据我所知,但我可能做错了什么。
-
@Joseph:从各行中可以看到jqGrid的当前代码调用afterSearch,而独立于beforeSearch返回的值。
-
无论如何,我有一个更好的解决方案,可以解决过滤失败时显示和删除任何警告文本的原始意图。如果有时间的话,我今天晚些时候会更新我的解决方案。
-
我正在使用搜索选项之前,但是在此对象中正在获取整个表,您能建议一种验证我的数据类型为本地的方法吗,jQuery("#grid1").jqGrid(filterToolbar, { stringResult: true, searchOnEnter: false, beforeSearch:function(data){console.log(this,data)}}).trigge r("reloadGrid") @Oleg
-
@Vikas:最好发布新问题,在其中描述更详细的问题,使用哪个版本的jqGrid以及使用哪个fork等等。代码console.log(this,data)没有任何意义。回调beforeSearch必须返回布尔值,该值通知jqGrid是处理过滤还是停止过滤。不应调用任何trigge??r("reloadGrid")。 this是原因表,但是它允许您访问任何其他选项:$(this).jqGrid("getGridParam","postData").filters是过滤器,您可以对其进行分析或修改。
-
@Oleg $(this).jqGrid("getGridParam","postData").filters这很有帮助,如果我遇到任何问题,请将其更新为新问题