$("#result-panel").datagrid('load',{
id:id,
flag:flag,
channel_code:code,
start_time:start,
end_time:end
});
可以通过onBeforeLoad事件去看请求的参数,一共发送了两次请求。
在执行load方法时,会有个setTimeOut函数,可断点查看源码,有可能是在等待TimeOut的过程中,datagrid发现了url携带参数信息发生了变化,所以又再次发送了一次请求。所以在onBeforeLoad事件中你会看到两次请求,一次是之前的参数,一次是正确的参数。所以就会存在数据差错,
解决方法是:先获取数据再加载。
$.ajax({
url:'newReports/showMenuQaStatisticList',
type:"post",
data:{
id:selectId,
flag:flag,
channel_code:code,
start_time:start,
end_time:end
},
async: true,
success:function(data){
$("#result-panel").datagrid("loadData",data);
}
});
还有就是:有关datagrid初始化时为什么会向后台发送两次请求的解释