如何在免费的 jqgrid 4.15.4 中重新加载数据
How to reload data in free jqgrid 4.15.4
我有一个关于免费 jqgrid 的问题。我的 jqgrid 可以正常加载所有数据。我已经明确给出了一个下拉菜单和搜索按钮。当我尝试通过选择下拉菜单并单击搜索按钮进行搜索时,新数据未加载到现有网格中。
这是我的fiddle: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");
}
})
}
我曾尝试从中引用但无济于事
- How to filter the jqGrid data NOT using the built in search/filter box
- how to reload jqgrid in asp.net mvc when i change dropdownlist
- jQuery button click refresh of jqGrid only firing once
如果您将 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 部分。
我有一个关于免费 jqgrid 的问题。我的 jqgrid 可以正常加载所有数据。我已经明确给出了一个下拉菜单和搜索按钮。当我尝试通过选择下拉菜单并单击搜索按钮进行搜索时,新数据未加载到现有网格中。
这是我的fiddle: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");
}
})
}
我曾尝试从中引用但无济于事
- How to filter the jqGrid data NOT using the built in search/filter box
- how to reload jqgrid in asp.net mvc when i change dropdownlist
- jQuery button click refresh of jqGrid only firing once
如果您将 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 部分。