更新 我现在猜测的是:网格#1被卸载并重新生成。但是,由于数据库服务器性能,网格会检索未更新的数据并在实际更新发生之前重新生成。我将GridUnload替换为刷新页面,有时网格会获取更新数据,有时则不会。由于主要问题已被更改,我更改了它的标题,但我将保留以前的上下文。
我有一个带有操作按钮的jqgrid(不在jqgrid中),它将在数据库中进行更改,并使用更新的数据卸载并重新创建网格(从数据库中重新生成)。
但是,此操作有两个不同的错误。 (有两种不同的网格。)
首先,重新创建的网格#1显示未更新的数据。我发现它正在使用版本jqGrid 4.14.1(2017-03-20)。但是,版本4.14.1(2017-04-04)和版本4.14.1(2017-04-20)无法正常工作。 我记得没错,我在2017-03-20之后没有更改任何代码,但只更新了jqgrid.src.js文件。我将此文件更新到版本4.14.1(2017-04-04)的原因是this issue。
其次,Grid#2返回重复的.ui-jqgrid-pg-left类,如下图所示(.ui-jqgrid-pg-left与我重新生成网格一样生成。)这个只测试版本4.14.1(2017-04-20)。
这是 Grid#1
的代码$(document).ready(function () {
LoadLGrid1();
$('#btnUpdateData').click(function () {
UpdateData();
$('#tbDetails').jqGrid("GridUnload");
LoadLGrid1();
});
)};
function LoadLGrid1() {
GridArea = $('#tbDetails');
GridArea.jqGrid({
url: '/Locked/GetLockedDetailsDataSet',
datatype: "json",
contentType: "application/json; charset-utf-8",
mtype: 'GET',
emptyrecords: "There is no locked deals currently.",
colModel: [
{label: 'Locked By', name: 'LockedBy', sorttype: 'text', searchoptions: {clearSearch: true}},
{label: 'Status', name: 'Status', sorttype: 'text', searchoptions: {clearSearch: true}},
{label: 'Locked Date', name: 'LockedDate', sorttype: 'date', searchoptions: {clearSearch: true},
//blahblah
}
],
rowNum: 20,
rowList: [20, 30, 50],
prmNames: {
page:'defaultPageNumber',
rows:'rowsPerPage'
},
forceClientSorting: true,
sortname: 'LockedDate',
rownumbers: true,
viewrecords: true,
loadonce: true,
multiselect: true,
multiPageSelection: false,
pager: true,
searching: {
searchOperators: true,
defaultSearch: 'cn',
closeOnEscape: true,
searchOnEnter: false,
multipleSearch: true
}
});
GridArea.jqGrid('filterToolbar', {
ignoreCase: true,
searchOperators: true
});
GridArea.jqGrid('navGrid', {
edit: false,
add: false,
del: false,
refresh: true,
refreshtext: "Clear Filter",
refreshtitle: "Clear Filter"
});
};
这是 Grid#2 的代码。它确实具有与#1相同的结构,但我会放在以防万一......
$(document).ready(function () {
LoadLGrid2(selectedDealId);
$('#btnUpdateData2').click(function () {
UpdateData();
$('#tbTaskDetails').jqGrid("GridUnload");
LoadLGrid2(selectedDealId);
});
)};
function loadGrid2(selectedDealId) {
tbTaskDataArea = $('#tbTaskDetails');
tbTaskDataArea.jqGrid({
url: '/Tasks/GetTaskDataSet',
postData: {
selectedDeal: selectedDealId
},
datatype: "json",
contentType: "application/json; charset-utf-8",
mtype: 'POST',
emptyrecords: "There is no task associated with the deal currently.",
colModel: [
{ label: 'Task Id', name: 'TaskId', sorttype: 'number', searchoptions: { clearSearch: true }, width: 60, align: 'center' },
{ label: 'Description', name: 'Description', sorttype: 'text', searchoptions: { clearSearch: true }, width: 270 },
{ label: 'Create Date', name: 'CreateDt', sorttype: 'date', searchoptions: { clearSearch: true }, width: 140,
//blahblah
}
],
rowNum: 5,
rowList: [5, 10, 15],
prmNames: {
page: 'defaultPageNumber',
rows: 'rowsPerPage'
},
forceClientSorting: true,
sortname: 'CreateDt',
rownumbers: true,
viewrecords: true,
loadonce: true,
multiselect: true,
multiPageSelection: false,
pager: true,
searching: {
searchOperators: true,
defaultSearch: 'cn',
closeOnEscape: true,
searchOnEnter: false,
multipleSearch: true
}
});
tbTaskDataArea.jqGrid('filterToolbar', {
ignoreCase: true,
searchOperators: true
});
tbTaskDataArea.jqGrid('navGrid', {
edit: false,
add: false,
del: false,
refresh: true,
refreshtext: "Clear Filter",
refreshtitle: "Clear Filter"
});
};
请帮我解决这个问题。谢谢!