2012-02-10 19 views
3

グリッド列(非表示/表示)、幅、位置をページをリロードせずにリセットします。 私はこれを試していますextjsグリッド復元列(非表示/表示)、幅、位置

Ext.getCmp('inventoryResultGrid').applyState(firstState); 

しかし、それは位置のために働いています。

+0

をドキュメントを見つけることができます)(grid.getViewを呼んだ。リフレッシュ()? –

+1

Ext.getCmp( 'inventoryResultGrid')。getView()。refresh();私のために働いていない:( –

答えて

0

どのExtJSバージョンですか?

EXtJS 3.1.4のGridPanel.applyState()のソースを見ると、列の後に状態を適用すると列モデルのconfigに値が格納されますが、現在の設定は変更されません(位置は除く)。

このような何かが(未テスト)を実行する必要があります。

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(); 
} 
+0

私はExtJS 4を使用していて、グリッドには 'getColumnModel'メソッドがありません – CoderDennis

2

は、このような再構成方法を試してみてください。

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

+0

それはあなたが最初の設定値に列の状態を復元したいと思うように思えます。 applyState'は何もしないようです。 – CoderDennis

関連する問題