我有一个jqGrid,我在其上调用filterToolbar并设置loadonce = true。当我开始搜索时,搜索第一次不起作用。第二次搜索效果很好。 任何的想法? 的jqGrid(' filterToolbar&#39 ;, {stringResult:false, searchOnEnter:false,enableClear:false, beforeSearch:function(){ presenter.grid.setGridParam({loadonce:" true"}); }, afterSearch:function(){ }});
答案 0 :(得分:0)
首先,loadonce
的值应该是布尔值而不是字符串:(loadonce: true
而不是loadonce: "true"
)。
秒,loadonce
仅在处理从服务器加载的数据时使用。如果未设置loadonce: true
,则HTML表将填充数据,但服务器会响应,并且不会在本地保存从服务器返回的数据。另一方面,如果loadonce: true
,则jqGrid将从服务器返回的数据保存在本地jqGrid选项data
中。但我必须重申,jqGrid在处理服务器响应期间仅填充data
。此外,如果datatype
为"local"
,则jqGrid会在处理数据结束时将选项loadonce
更改为true
。因此,所有内容看起来都像本地填充网格:datatype
是"local"
,data
选项填充数据(所有数据页)。
您当前的代码只是将loadonce
选项设置为true
。它不会填充data
选项,也不会将datatype
更改为"local"
。而不是jqGrid将继续处理当前的过滤请求,它将把请求发送到服务器。只有在处理完服务器响应(返回过滤数据的请求)之后,jqGrid才会考虑loadonce: true
选项,它将填充data
并将datatype
更改为"local"
}。