我想在不重新加載頁面的情況下重置網格列(隱藏/顯示),寬度和位置。 我正在試圖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