2016-09-02 9 views
1

GridPanelの列の値を構築する際に、そのフィールドに値がない場合はフィールドを検索し、別のフィールドを探して列の値として表示する必要があります。今度はExtJS6 docsとして、単一のデータ属性をdataIndexに渡し、レンダリングされた関数を介して金型値を渡すことができました。ただし、前述のフィールドに値がない場合、どのようにフォールバック属性を使用できるかについては言及されていません。ここでExtJS6:グリッドパネルの列にオブジェクト全体または2つのフィールドを渡す

がスニペットです:

{ 
    text: 'Title', 
    flex: 1, 
    dataIndex: '<how-to-pass-object-itself-or-two-fields>', 
    renderer: function(value, metaData) { 
    return '<i class="fa fa-bars"></i>' + value; 
    } 
} 

答えて

2

レンダラー機能は、インのパラメータの詳細を持っています。

レコードからすべてのフィールドを取得できます。 return文で

var DEFAULT_VALUE = ''; 

{ 
    dataIndex : 'a' // or could be 'b', or 'c' or etc… 
    renderer: function(value, metaData, record, rowIndex, colIndex, store, view) { 
     var fieldA = record.get('a'); 
     var fieldB = record.get('b'); 
     var fieldC = record.get('c'); 

     // … 

     return value || DEFAULT_VALUE; // ? 
    } 
} 

、ちょうどあなたの他のフィールドの値のいずれかまたは実際のデフォルト値でDEFAULT_VALUEを交換してください。

1

グリッドがクライアント側でソート可能な場合は、rendererを使用して列の異なるレコード値をレンダリングするときは注意が必要です。

convertの方法は、Ext.data.field.Field

関連する問題