Web UI フレームワークを使用した複数のレコード・フィールドからのソートのカスタマイズ
1 つのレコードの複数のフィールドを (例えば、レンダラーを使用することによって) 結合したデータを使用するテーブル列のソートをカスタマイズできます。 これは、Ext JS 2.2.1 と Ext JS 3.0.2 の両方で行うことができます。
このソートは、Ext.data.field クラスの sortType 関数を使用して実行します。 1 つの項目を sortType に渡す代わりに (フィールドの値)、3 つの項目が渡されます (フィールドの値、レコード、およびソート対象フィールド)。 この機能は、Ext.data.Store クラス内の sortData メソッドをオーバーライドして、フィールドの値とレコードおよびフィールドを渡すことによって提供されます。
ユーザーは、グリッドのストアを作成していないときに、グリッドの columnModel または columns の bindingData.sFieldConfig プロパティーで構成オプションとして sortType を渡すことができます。
例えば、グリッドでは以下の構成が可能です。
columns: [{
dataIndex: 'airlines',
bindingData: {
sFieldConfig : {
mapping : "airlines",
sortType: this.sortTypeFn
}
}
}]
ここで、 this.sortTypeFn は、画面 JavaScript ファイルで次のように定義されています。
sortTypeFn: function(val, rec, fld){
return val + rec.get('airlinenumber');
// computing the value based on value of field (airlines) and
// value of 'airlinenumber' field
}”