刷新jqgrid时遇到问题。 试了很多东西,但仍然没有解决方案。 我想从服务器端获取json数据后刷新网格。 这是我正在做的刷新jqgrid。
$("#searchButton").on("click",function(){
var url = contextPath+"/patient/fetchPatients?firstName="+$("#firstName").val()+"&lastName="+$("#lastName").val()+"&diagnosis="+$("#diagnosis :selected").val();
jQuery("#searchedPatientGrid").setGridParam({datatype:'json',url:url}).trigger('reloadGrid');
});
这是我的jqgrid配置代码。
jQuery("#searchedPatientGrid").jqGrid({
datatype: "json",
colNames:['id','Firsr Name','Last Name','MObile Number','Action'],
colModel:[
{name:'id',index:'id', width:100},
{name:'firstName',index:'firstName', width:100},
{name:'lastName',index:'lastName', width:100},
{name:'mobileNumber',index:'mobileNumber', width:100},
{name:'operationDetails.operationDone',index:'operationDetails.operationDone', width:100}
],
rowNum:10,
rowList:[10,20,30],
pager: '#gridPager',
sortname: 'id',
"width":"900",
"gridview":true,
viewrecords: true,
sortorder: "desc",
loadonce: false,
caption:"Patient Search Result"
});
当我第一次点击按钮时,它会点击服务器并在网格中加载数据,但是当我再次点击搜索按钮时,它不会点击服务器上的数据。我不知道为什么会发生这种情况。即使我在config中提到过,loadOnce:false。如果我点击搜索按钮,它应该点击服务器。
答案 0 :(得分:0)
我猜,默认情况下,如果您未指定 jqgrid 的mtype
参数,则在向服务器发送请求时会使用 POST ,因此您的网址可以不发送参数。
我认为你可以尝试使用这样的东西:
$("#searchButton").on("click", function () {
var url = contextPath + "/patient/fetchPatients";
var postData =
{
firstName: $("#firstName").val(),
lastName: $("#lastName").val(),
diagnosis: $("#diagnosis :selected").val()
}
});
$("#searchedPatientGrid").trigger('reloadGrid',
[
{
datatype: 'json',
url: url,
postData: postData
}]);
有关如何使用其他参数重新加载jqgrid的更多信息,请查看@Oleg answer。