jqgrid 刷新后 怎么重新加载searchoptions中数据
时间: 2024-01-27 19:05:02 浏览: 44
在 jqGrid 中,如果需要在刷新后重新加载 searchoptions 中的数据,可以使用以下代码:
```
// 获取表格的表头
var colModel = $("#grid").jqGrid("getGridParam", "colModel");
// 遍历表头,重新加载 searchoptions 中的数据
for (var i = 0; i < colModel.length; i++) {
var searchoptions = colModel[i].searchoptions;
if (searchoptions && searchoptions.dataUrl) {
$.ajax({
url: searchoptions.dataUrl,
dataType: "json",
success: function(data) {
// 更新 searchoptions 中的 data
searchoptions.data = data;
// 更新表头
$("#grid").jqGrid("setColProp", colModel[i].name, { searchoptions: searchoptions });
}
});
}
}
// 刷新 jqGrid
$("#grid").trigger("reloadGrid");
```
这段代码会先获取表格的表头,然后遍历表头,找到 searchoptions 中有 dataUrl 的列。接着,使用 AJAX 请求获取数据,并更新 searchoptions 中的 data。最后,更新表头,并使用 trigger 方法刷新 jqGrid。
需要注意的是,因为 AJAX 请求是异步的,所以在 success 回调函数中更新 searchoptions 中的 data 时,需要使用闭包来保存当前列的 searchoptions 对象。此外,如果 searchoptions 中的 dataUrl 返回的数据格式不是 JSON,需要根据实际情况修改 dataType 参数。