2010-09-22 18 views
11

我们在loadonce设置为true的网格上使用jqGrid导航器重新加载按钮。如何让jqGrid重新加载到服务器?

重新加载按钮目前不会返回到服务器以获取数据 - 我们如何获得重新加载到服务器以获取最新数据?

我相信我们可以使用beforeRefresh回调到电网data设置为json,而不是local但我不清楚如何,即使配置beforeRefresh方法 - 我真的不明白的文档。

回答

22

你不是唯一有问题的人。我之前回答了the same question。要从服务器重新加载网格内容,您应该将datatype参数重置为原始值“json”或“xml”,然后刷新网格。例如

jQuery("#list").jqGrid('setGridParam',{datatype:'json'}).trigger('reloadGrid'); 

修订:要调用beforeRefresh事件处理程序内的线,你可以做以下

jQuery("#list").jqGrid('navGrid','#pager', 
    { edit:false,view:false,add:false,del:false,search:false, 
    beforeRefresh: function(){ 
     alert('In beforeRefresh'); 
     grid.jqGrid('setGridParam',{datatype:'json'}).trigger('reloadGrid'); 
    } 
    }); 

我修改上午老问题的例子。 Here如果你点击刷新按钮,你可以看到代码是如何工作的。

更新2Free jqGrid支持一些新的选项。 reloadGrid事件支持fromServer: true参数可用于强制从服务器重新加载数据,并且navGrid支持reloadGridOptions选项,该选项可用于指定在点击刷新按钮时使用的选项reloadGrid。所以上面的代码可能是

$("#list").jqGrid("navGrid", { 
    edit: false, 
    add: false, 
    del: false, 
    search: false, 
    reloadGridOptions: { fromServer: true } 
}); 

通过一个可以使用的jqGrid的navOptions选项来指定的navGrid默认选项(参见维基文章)的方式。它允许编写的代码有点像

$("#link").jqGrid({ 
    // all typical jqGrid parameters 
    datatype: "json", // or "xml" 
    loadonce: true, 
    pager: true, // no empty div for page is required 
    navOptions: { 
     edit: false, 
     add: false, 
     del: false, 
     search: false, 
     reloadGridOptions: { fromServer: true } 
    } 
}).jqGrid("navGrid"); 
+0

谢谢 - 点击重新加载按钮时如何运行此代码?如果这是你所指的,我不清楚如何配置导航栏来执行'beforeRefresh'方法。 – 2010-09-22 19:08:39

+0

@马库斯:如果很简单。我在我的答案中包含了相应的代码。 – Oleg 2010-09-22 21:03:48

+0

@ Oleg,我试过这样做,但一旦我点击刷新按钮,分页不起作用。 – 2012-07-09 18:02:47

2

我试过下面的配置,它的工作原理。

<script type="text/javascript"> 
jQuery(function() { 
    jq("#YOUR-GRID-ID").jqGrid({ 
     ... 
     loadonce: true, 
     ... 
    }); 
    jQuery("#refresh_YOUR-GRID-ID").click(function(){ 
     jQuery("#YOUR-GRID-ID").setGridParam({datatype: 'json'}); 
     jQuery("#YOUR-GRID-ID").trigger("reloadGrid"); 
    }); 
}); 
</script> 
相关问题