我正在用这个脚本刷新jqgrid:
$('#btnRefresh').click(function () {
$.ajax({
type : "GET",
url: "${pageContext.request.contextPath}/General/ProvinceLoadGrid.json",
success: function (data) {
if (data != null) {
jQuery('#dataTable').jqGrid('clearGridData')
.jqGrid('setGridParam', {data: data, page: 1})
.trigger('reloadGrid');
}
}
});
)};
我已经配置了jqgrid,以便在浏览页面后保存选定的行。 此脚本触发重新加载网格以重新加载数据,但这会产生问题。 问题是当我在页面1中选择第一行时(每个页面有10条记录时) 第二页上的第一条记录(第11条记录)也被选中。也选择了第3页的记录(第21记录)等... 所有这些都发生在reloadGrid之后。 jqgrid正确地在每个页面上保存我的选择,但在重新加载网格后会出现此问题。
我如何设法解决这个问题?
答案 0 :(得分:4)
试试这个:
if (data != null) {
jQuery('#dataTable').jqGrid('clearGridData')
jQuery('#dataTable').jqGrid('setGridParam', {data: data, page: 1})
jQuery('#dataTable').trigger('reloadGrid');
}
答案 1 :(得分:1)
我修好了! 问题是在重新加载网格后数据类型重置为其默认值,我们需要再次将其设置回json或xml!
$('#btnRefresh').click(function () {
$.ajax({
type : "GET",
url: "${pageContext.request.contextPath}/General/ProvinceLoadGrid.json",
success: function (data) {
if (data != null) {
jQuery('#dataTable').jqGrid('clearGridData')
.jqGrid('setGridParam', {data: data, datatype: 'json'})
.trigger('reloadGrid');
}
}
});
)};
答案 2 :(得分:0)
为了避免所有问题,我这样做
Html - 将jQgrid表包含在div
中
<div id="tableDivID">
<table id="tableID"></table>
<div id="tablePagerID"></div>
</div>
Jquery - 激活jQgrid的函数
function activatejQGrid(data)
{
$("tableID").jQGrid({
//code for jQgrid initilise with *data*
}}
}
重新初始化jQgrid
$("#tableDivID").replaceWith(function () {
return "<div id='tableDivID'><table id='tableID'></table><div id='tablePagerID'></div>
</div>";
});
activatejQGrid(data);