我在jqGrid之外有过滤器,应该触发网格重新加载。此条目使用postData选项让我对如何实现它有了一些了解:How to filter the jqGrid data NOT using the built in search/filter box 不幸的是,代码片段是片段,我无法弄清楚调用的整体顺序应该是什么。以下是我目前方法的简要观点:
<script>
$(document).ready(function() {
$("#submit").click(function(e) {
e.preventDefault();
myGrid.trigger('reloadGrid');
});
});
var url="${servicesUrl}/projects";
var myGrid = $("#projectList").jqGrid({
url: url,
datatype: 'json',
mtype: 'GET',
// ...
});
</script>
我应该如何构建代码,以便每次点击“提交”按钮都会触发网格重新加载?一旦我解决了这个问题,我确信我能够添加posData部分,我的问题主要是整个调用顺序。我不确定哪个调用应该在ready()函数内部,以及如何正确调用'reloadGrid'。非常感谢任何帮助。
答案 0 :(得分:6)
这对我有用:我在beforeRequest
事件上设置回调,在每个请求发出之前更新postData
属性。
请注意,您需要将所有jqGrid初始化代码放在$(document).ready(function(){});
函数中,否则您的表元素可能不在DOM中
var url="${servicesUrl}/projects";
$(document).ready(function() {
var $table = $("#projectList");
$table.jqGrid({
url: url,
datatype: 'json',
mtype: 'GET',
beforeRequest: function() {
var postData = $table.getGridParam('postData');
//add parameters to postData here
}
// ...
});
$("#submit").click(function(e) {
e.preventDefault();
$table.trigger('reloadGrid');
});
});