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 排序。

我想让用户能够通过组合框的显示字段对该列进行排序。

请帮忙,谢谢

4

1 回答 1

0

我认为这没有简单的解决方案。我能想到的唯一一种方法是:

  • 在您的模型中创建一个虚拟字段(基本上带有显示字段)。为这个虚拟字段创建转换函数,所以当它设置真实值字段时得到更新。

  • 在网格中使用此虚拟字段,无需额外渲染

  • 对该字段使用编辑器,其中 valueField 和 displayField 都指向该字段。

于 2012-04-10T00:45:54.313 回答