jqGrid在处理前停止加载和重新加载Grid

jqGrid在处理前停止加载和重新加载Grid,jqgrid,free-jqgrid,Jqgrid,Free Jqgrid,这是我的例子: 如何自动重新加载 处理前:函数(数据、状态、xhr){ 如果(data.rows===''){ $('jqGridPreparate').jqGrid('clearGridData'); 返回false; } if(data.inputCol){ $(“td.ui-search-input#id_prep”).val(“”); $(“td.ui-search-input#id_opisanie”).val(data.inputCol); var rplc=$.parseJSON(

这是我的例子:

如何自动重新加载

处理前:函数(数据、状态、xhr){
如果(data.rows===''){
$('jqGridPreparate').jqGrid('clearGridData');
返回false;
}
if(data.inputCol){
$(“td.ui-search-input#id_prep”).val(“”);
$(“td.ui-search-input#id_opisanie”).val(data.inputCol);
var rplc=$.parseJSON($(“#jqGridPreparate”)[0].p.postData.filters);
对于(var i=0;i
我不确定我是否完全理解您想要实现什么。我可以猜测,如果服务器返回一些附加信息,您希望应用过滤器

看起来您在jqGrid和服务器之间实现了一些关于返回数据的定制协议<代码>行服务器响应的一部分应该是项目数组。在您的情况下,服务器可以将空字符串设置为
行的值。您尝试使用服务器响应的
inputCol
属性强制筛选先前加载的数据。您可以对现有筛选器进行一些自定义修改,填充筛选器工具栏的一些字段,最后尝试使用
triggerToolbar
。代码非常不清楚,它包含了许多您没有直接描述的假设。我不清楚是要启动本地筛选,还是jqGrid应该使用修改过的筛选向服务器发送新请求

无论如何,如果您想在其他回调函数内部启动某种类型的重新加载/过滤,您应该考虑一些基本规则。首先,方法
触发工具栏
或触发
重新加载网格
同步工作。这意味着jqGrid首先生成
triggerToolbar
,这使得
重新加载Grid
,直到最后,然后将执行
$(“#jqGridPreparate”)[0]之后的下一行代码。因此,严格建议将
triggerToolbar
reloadGrid
的所有调用放在
setTimeout
主体内。它允许处理当前回调直到结束,然后再进行重新加载。如果来自服务器的响应包含您的自定义信息而不是典型的jqGrid数据,那么您应该在处理前从
返回
false
,以停止标准处理

如果您可以构造
postData.filters
,则无需使用
triggerToolbar
应用筛选器。相反,您只需另外设置jqGrid的
search:true
参数,并触发
reloadGrid

相应的代码可能与以下内容有关:

处理前:函数(数据、状态、xhr){ var$self=$(this),p=$self.jqGrid(“getGridParam”); 如果(data.rows==“”){ $self.jqGrid(“clearGridData”); return false;//不通过jqGrid处理数据 } if(data.inputCol){ var i,rplc=$.parseJSON(p.postData.filters); 对于(i=0;i
@andreemiddow:不客气!如果问题解决了,你应该给出答案。