我的应用程序中有一个ext:gridpanel,我们已经让用户能够按照网格中的方便排列列。 我们还将按钮重置列设置为默认值,以便用户可以返回到原始gridpanel列顺序。 当用户单击“将列重置为默认值”按钮时,会在javascript文件中编写一个方法以将网格恢复为原始状态 此按钮的单击处理程序调用方法 - “gridpanel_restore”
此方法的代码为: -
var gridpanel_restore = function (grid) {
try
{
grid._State = appGlobal.getGridState(grid);
if (grid._State == grid._DefaultState) {
return;
}
grid._State = grid._DefaultState;
var settings = Ext.decode(grid._State);
var cm = grid.getColumnModel();
if (cm.isLocked != null) {
for (var i = cm.columns.length - 1; i > 0; i--) {
if (cm.isLocked(i) && !settings.settings[0].lockField.contains(i)) {
cm.setLocked(i, false, false);
}
}
for (var j = 0; j < settings.settings[0].lockField.length; j++) {
if (!cm.isLocked(i)) cm.setLocked(settings.settings[0].lockField[j], true, false);
}
}
if (settings.settings[0].state.sort) {
}
else {
grid.store.sortInfo = null;
}
grid.applyState(settings.settings[0].state);
var lastColumn = cm.getColumnAt(cm.columns.length - 1);
cm.setColumnWidth(cm.columns.length - 1, lastColumn.width - 1, false);
noMask = true;
CMS.ResetUserSettings(grid._ControlID);
if (settings.settings[0].state.group != null) {
async: false
window.location.href = window.location.href;
}
}
catch (err) {
}
}
这段代码在IE中运行得很好,但是在firefox中,我在线路上遇到了通信故障“window.location.href = window.location.href;”在第34行 我已经使用过这一行,因为在将列设置为默认值后,应该重新加载页面,否则网格无法正确呈现。 我见过与此相关的帖子但找不到解决方案。
请帮忙。我已经在ext.net论坛上提出了这个问题,但没有回答。