我有一个关于免费jqgrid的问题。我的jqgrid可以很好地加载所有数据。我已经明确给出了一个下拉菜单和搜索按钮。当我尝试通过选择下拉列表并单击搜索按钮进行搜索时,新数据不会加载到现有网格中。
这是我的小提琴:https://jsfiddle.net/x3fger4z/。
在页面加载时,我正在使用以下URL:'/ MajorsView / GetAllData',但是在单击按钮后,我想从另一个URL加载。
下面是我的搜索按钮,实际上我正在成功获取数据,但是它并没有反映在网格上:
<input type="button" onclick="return myfunction();" id="btnFlagStatus" value="Search" class="btn btn-primary" />
function myfunction() {
var gendarVal = $("#gendarFlagsEnum option:selected").text();
var URL= "/MajorsView/GetFemaleData?searchKey=" + gendarVal;
$.ajax({
type: "GET",
url: URL,
contentType: "application/json; charset=utf-8",
data: JSON.stringify(gendarVal),
datatype:"json",
success: function (data) {
//$("#grid").setGridParam({ url: URL })
$("#grid").trigger('reloadGrid');
},
error: function () {
alert("error");
}
})
}
我尝试从中获取参考,但无济于事
答案 0 :(得分:1)
如果将datatype: "json"
与某些url
一起使用,则只需将url
更改为另一个值并触发reloadGrid
。不需要手动提出Ajax请求。如果另外使用loadonce: true
选项,则网格的datatype
将更改为"local"
以便在本地进行 的排序,分页和过滤。每次排序,分页和筛选都不过是重新加载具有datatype: "local"
和其他参数(例如page
,sortname
,postData.filters
)的网格。因此,要从服务器重新加载网格的数据,必须将datatype
恢复为初始值(在您的情况下为"json"
)。因此,您可以使用
var p = $("#grid").jqGrid("getGridParam"); // get reference to all parameters of jqGrid
p.url = "/MajorsView/GetFemaleData?searchKey=" + encodeURIComponent(gendarVal)
$("#grid").trigger("reloadGrid", { fromServer: true });
或者,ole可以直接重置datatype
(使用p.datatype = "json";
),但是在其他情况下使用fromServer: true
可能会有所帮助,我认为它使代码更易读。有关其他信息,请参见the old answer的 UPDATED 部分。