2011-07-15 10 views
1

「空の」列を自動的に非表示にするExtJS Grid用のプラグインはありますか?ExtJSグリッドパネルの「空の」列を自動的に非表示にする

基礎となるストア内のすべてのレコードのマップされたフィールドの値が、指定された空の条件(指定された値またはより良い関数)と一致する場合、列は「空」と見なす必要があります。

基本ストアの実行時追加/削除/更新操作は、それに応じて列を非表示/非表示にする必要があります。

ありがとうございます!

答えて

1

私はこれに似た何かをしなければなりませんでした。ここでは、 "fieldHasData"メソッドの戻り値に基づいて列を表示/非表示にする "非表示列モデル"があります。何を

Ext.ux.grid.HidingColumnModel = function() { 

    var Class = Ext.extend(Ext.grid.ColumnModel, {   
     constructor:function(config) { 
      Class.superclass.constructor.call(this, config); 
     }, 

     onGridStoreLoad:function(store, records, options) { 
      store.fields.each(function(item, index, length) { 
       var colIndex = this.findColumnIndex(item.name); 
       if (colIndex >= 0) { 
        this.setHidden(colIndex, !this.fieldHasData(item.name, records)); 
       } 
      }, this); 
     }, 

     fieldHasData:function(field, records) { 
      var hasData = false; 
      Ext.each(Ext.pluck(records, "data"), function(item, index, allItems) { 
       if (item[field]) { 
        hasData = true; 
       } 
      }); 
      return hasData; 
     } 
    }); 

    return Class; 
}(); 

を求めていたと私はどこにも同様のプラグインを見つけることができなかったので、あなたのグリッドに...列モデル

var columnModel = new Ext.ux.grid.HidingColumnModel(), 
    store = ... {create your store}, 
    gridPanel = new Ext.grid.GridPanel({ 
     ... 
     store:store, 
     columnModel:columnModel, 
     ... 
    }); 

store.on('load', columnModel.onGridStoreLoad, columnModel); 
+0

おかげで:)私は最終的に私は、ランタイム表示/非表示を必要とするので、自分自身をプラグインに実装し、私は何千ものと高速であるためにそれを必要と行。 – Sergio

関連する問題