gpt4 book ai didi

javascript - jqGrid:在表中已有本地数据后加载 JSON 数据

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:35:45 24 4
gpt4 key购买 nike

我有一个非常具体的问题:我有一个带有四个选项的小表格。您可以填写或不填写,当您单击“确定”时,我会根据这些选项加载包含数据的 jqGrid。但是因为我不知道我的列是什么样的,所以我让我的 servlet 生成列模型和列名;因此我必须发出一个 AJAX 请求来加载数据,然后将其作为“本地”数据填充到 jqGrid 中。不过我想使用分页。

因此我的问题是:在通过本地数据建立 jqGrid 之后,如何将更多数据加载到它?

代码如下:

$.ajax({
type : 'GET',
url : 'data.jsp',
data : reqData,
dataType : 'json',
error: function() {
$("#dialog-message").dialog("open");
$("#ajax-loader").css("display", "none");
},
success : function(result) {
jQuery("#results").jqGrid({
data : result.rows,
datatype : "local",
colNames : result.columnNames,
colModel : result.columnModel,
pager : $('#pager'),
rowNum : 1000,
scroll : true,
viewrecords : true,
sortname : 'TITEL',
width : window.innerWidth - 30,
height : window.innerHeight - 190,
altRows : true,
loadError: function() {
$("#dialog-message").dialog("open");
$("#ajax-loader").css("display", "none");
},
loadComplete: function() {
$("#ajax-loader").css("display", "none");
}
}).jqGrid("navGrid", "#pager", {
edit: false,
add: false,
del: false,
search: true,
refresh: false
}).jqGrid("gridResize");

}
});

/edit:我已经尝试执行以下操作,但这仍然没有解决网格不知道实际有多少页的问题(实际上,在这一点上,我什至不知道知道),并且在加载后,它认为它只获取本地数据。是否有 onScroll 事件之类的?我还没找到。

datatype : !json ? "local" : function(postdata) {
$.ajax({
type: 'GET',
url: 'data.jsp',
data: $.merge(postdata, reqData),
dataType: 'json',
success: function(data, status, jqXHR) {
var mygrid = jQuery("#results")[0];
var myjsongrid = eval("("+jqXHR.responseText+")");
mygrid.addJSONData(myjsongrid);
}
});
},

最佳答案

你能不能不做这样的事情...获取网格,清除数据,定义从中获取数据的 url(它可能会根据你的用户选择的选项而改变)然后将数据格式更改为 json 而不是本地。

var grid = $('#TargetGridID');
grid.clearGridData();
grid.setGridParam({ url: '../controller/action?datatype=Option1' });
grid.setGridParam({ datatype: 'json' });
grid.trigger('reloadGrid');

我们使用这种方法,效果很好...将其与能够分页的存储过程一起使用,网格速度非常快!我知道一个 20,000 行的网格需要大约 700 毫秒,页面数为 500 行。

如果您使用 SQL 处理数据,我可以上传一个关于如何在 SQL 存储过程中支持分页的示例,非常有用的东西。

关于javascript - jqGrid:在表中已有本地数据后加载 JSON 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10835385/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com