1

グリッドパネルの列aで、値を表示するためのエディターおよびレンダラーとしてコンボボックスを使用します。

editor: {
    xtype: 'combobox',
    alias: 'bienTypeCombobox',
    store: 'BienTypesStore',
    valueField: 'id_bien_type',
    displayField: 'nom',
    autoHeight: true,
    editable: false,
    autoSelect: true,
    allowBlank: false
},
renderer: function (value, metaData, record, rowIndex, colIndex, store, view) {
    var display = '';
    Ext.data.StoreManager.get("BienTypesStore").each(

    function (rec) {
        if (rec.get('id_bien_type') === value) {
            display = rec.get('nom');
            return false;
        }
    });
    return display;
}

したがって、セルが編集されている場合はコンボボックスが表示され、セルが編集されていない場合はこのコンボボックスのdisplayFieldが表示されます。

私の問題は、今のところ、この列のヘッダーをクリックすると、行がコンボボックスのvalueFieldで並べ替えられることです。

ユーザーがコンボボックスのdisplayedFieldでこの列を並べ替えられるようにしたいと思います。

助けてください、ありがとう

4

1 に答える 1

0

これに対する簡単な解決策はないと思います。私が考えることができる唯一の方法は次のとおりです。

  • モデルに仮想フィールドを作成します(基本的に表示フィールドを使用)。この仮想フィールドの変換関数を作成して、設定されると実際の値フィールドが更新されるようにします。

  • 追加のレンダリングなしでグリッドでこの仮想フィールドを使用します

  • valueFieldとdisplayFieldの両方がこのフィールドを指している状態で、このフィールドのエディターを使用します。

于 2012-04-10T00:45:54.313 に答える