2

私は ExtJS 4 を使用しており、MVC アプローチを使用しています。単純なグリッド ビュー クラスを作成し、コンポーネント クエリ タイプ 'ref' をコントローラーのそのビューに追加しました。初期のグリッド ビュー自体で、デフォルトでいくつかの列を非表示に設定し、いくつかの列を表示に設定しました。これらの設定を使用したグリッドのレンダリングはすべて正常に機能しています。

次に、クリックすると他の条件に基づいて、最初は非表示のグリッド列の一部が表示されるボタンがあります。これも同様に機能します。

しかし、必要なのは、後でグリッドを最初のビューに「リセット」する方法です (最初と同じように、正しい列が非表示/表示されます)。

次のさまざまな順列を試しましたが、効果はありませんでした。

var theGrid = this.getTheGrid();
theGrid.reconfigure(store, theGrid.initialConfig.columns);
theGrid.getView().refresh();

すべての列をループしてその「非表示」状態をリセットできると思いますが、クラスに設定されているものに「リセット」する方法があると思いますか? アドバイス?

ソリューションの更新

tuespetre からのポインタに感謝します。将来、詳細を探している人のために、必要なものは次のとおりです(少なくとも私の実装では):

  • ビュー内で、列定義を変数に移動しました

  • ビュー内では、クラス内の列参照は次のようになります。

    columns: myColumns,
    
  • ビュー内で、クラス内に作成された次の関数:

    resetGrid: function(){
        this.reconfigure(null, myColumns);
    },
    
  • コントローラー内:

    var theGrid = this.getTheGrid();
    theGrid.resetGrid();
    
4

1 に答える 1

1

ビュークラスに関数を作成して、その機能をカプセル化するだけです。

于 2013-01-25T17:41:39.857 に答える