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:不客气!如果问题解决了,你应该给出答案。