使用不同的表数据重新加载已加载的jqGrid

时间:2009-08-18 23:07:20

标签: jquery jqgrid

我有一个页面,以两种不同的模式显示一个表格。在每种模式中,我都有一组不同的列。我正在使用jqGrid来显示表格。当我第二次尝试加载表时(相同或不同的列),表不会刷新数据。

是否有不同的API来重新加载数据?或者我应该先使用某种方法清除表格?

2 个答案:

答案 0 :(得分:26)

我今天遇到了同样的问题。我使用jqGrid显示一个或多个表单字段中指定的参数的搜索结果。我在搜索按钮上有一个点击事件,在字段本身上有一个keydown事件来捕获返回键。这两个事件都调用一个函数来序列化表单并创建初始的jqGrid。

在初始网格中,我可以选择在gridCompletes时调用函数reloadEvents:

gridComplete: reloadEvents

在reloadEvents函数中我有:

$("#frmSearch").bind("keydown", function(e) {
    if (e.keyCode == 13) {
        $('#searchList').setGridParam({url:'/model/actSearch.cfm?'+$('#frmSearch').serialize()});
        $('#searchList').trigger("reloadGrid");
    }
});

$('#btnSearch').click(function(){
    $('#searchList').setGridParam({url:'/model/actSearch.cfm?'+$('#frmSearch').serialize()}); 
    $('#searchList').trigger("reloadGrid");  
}); 

如果您以不同的方式在网格中加载数据,则可以使用setGridParam更改所需内容。 reloadGrid方法应根据您更改的参数刷新数据。

答案 1 :(得分:15)

使用“GridUnload”方法将卸载网格并保留原始HTML表格。下一次创建网格的调用将从头开始使用任何给定的模式