2017-05-12 15 views
0

グリッドのあるウィンドウがあるとします。 これは、ExtJS、バージョン5.1.3経由でコード化しています。 このグリッドには4つの列があり、最後にはflex:1というプロパティがあります。 パーフェクト、すべてが整列しています。 最後の列を非表示にする可能性があります。他の列はプロパティーflexを持たないため、グリッドはウィンドウ内で切断されます。カラムのフレックス設定を動的に設定する

このウィンドウは、このlinkの最後のスクリーンショットに似ています。

私の質問:flexの列がない場合に一時的なflexプロパティの種類を定義してから、すぐにリセットすることはどういうことですか?

+0

なぜすべての列にフレックスを付けることができないのですか?または、フレックスを一括して削除し、autoWidthを使用してください。 – BhandariS

+0

@BhandariS実際には、コンテンツに基づいてサイズ変更されるたびに、すべての列にflexプロパティを使用したくありません。 autoWidthは列見出しの幅またはセル幅自体で計算されますか? – bash0ne

答えて

0

グリッドオブジェクトにforceFit : true設定を指定できます。

Ext.create('Ext.data.Store', { 
     storeId: 'simpsonsStore', 
     fields: ['name', 'email', 'phone'], 
     data: [{ 
      name: 'Lisa', 
      email: '[email protected]', 
      phone: '555-111-1224' 
     }, { 
      name: 'Bart', 
      email: '[email protected]', 
      phone: '555-222-1234' 
     }, { 
      name: 'Homer', 
      email: '[email protected]', 
      phone: '555-222-1244' 
     }, { 
      name: 'Marge', 
      email: '[email protected]', 
      phone: '555-222-1254' 
     }] 
    }); 

    Ext.create('Ext.grid.Panel', { 
     title: 'Simpsons', 
     forceFit : true, 
     store: Ext.data.StoreManager.lookup('simpsonsStore'), 
     columns: [{ 
      text: 'Name', 
      dataIndex: 'name' 
     }, { 
      text: 'Email', 
      dataIndex: 'email', 
      flex: 1 
     }, { 
      text: 'Phone', 
      dataIndex: 'phone' 
     }], 
     height: 500, 
     width: 600, 
     renderTo: Ext.getBody() 
    }); 
関連する問題