我想在不重新加载页面的情况下重置网格列(隐藏/显示),宽度和位置。 我正在试图extjs网格恢复列(隐藏/显示),宽度,位置
Ext.getCmp('inventoryResultGrid').applyState(firstState);
但它只适用于职位。
我想在不重新加载页面的情况下重置网格列(隐藏/显示),宽度和位置。 我正在试图extjs网格恢复列(隐藏/显示),宽度,位置
Ext.getCmp('inventoryResultGrid').applyState(firstState);
但它只适用于职位。
哪个ExtJS版本?
通过查看EXtJS 3.1.4中的GridPanel.applyState()的源代码:在列之后应用状态实际上仅存储列模型配置中的值,但不会更改当前设置(位置除外)。
像这样的东西应该做的(未经测试):
function restoreColumnState(grid, state) {
var cm = grid.getColumnModel(),
columns = state.columns,
columnState,
column,
columnIndex;
cm.suspendEvents(true);
for (var i = 0, len = columns.length; i < len; i++) {
columnState = columns[i];
column = cm.getColumnById(columnState.id);
if (column) {
columnIndex = cm.getIndexById(columnState.id);
cm.setHidden(i, columnState.hidden);
cm.setColumnWidth(i, columnState.width);
if (columnIndex != i) {
cm.moveColumn(columnIndex, i);
}
}
}
cm.resumeEvents();
}
我正在使用ExtJS 4和网格没有'getColumnModel'方法 – CoderDennis 2013-10-08 20:05:27
尝试重新配置方法是这样的。
var grid = Ext.getCmp('inventoryResultGrid');
grid.reconfigure(grid.store, grid.initialConfig.columns);
您可以在这里找到http://docs.sencha.com/ext-js/4-1/#!/api/Ext.grid.Panel-method-reconfigure
这似乎工作,它要恢复列状态为初始配置值仍然不回答为什么' applyState'似乎没有做任何事情。 – CoderDennis 2013-10-08 20:14:49
文档,你怎么叫grid.getView()。刷新()? – 2012-02-10 10:05:24
Ext.getCmp('inventoryResultGrid')。getView()。refresh();不为我工作:( – 2012-02-13 09:23:19