0

首先是一小部分代码:

{                text: 'TipoVisitaID',
            hidden: true,
            dataIndex: 'TipoVisitaID',
            itemId: 'TipoVisitaID'
        }, {
            text: 'TIPO VISITA',
            flex: 1,
            sortable: true,
            align: 'right',
            dataIndex: 'TipoVisita',
            editor: {
                xtype: 'combo',
                allowBlank: true,
                store: allTiposVisita,
                valueField: 'Id',
                name: 'TiposVisitaCombo',
                itemId: 'TiposVisitaCombo',
                tpl: Ext.create('Ext.XTemplate',
                                    '<tpl for=".">',
                                        '<div class="x-boundlist-item">{Designacao}</div>',
                                    '</tpl>'),
                displayTpl: Ext.create('Ext.XTemplate', '<tpl for=".">', '{Designacao}', '</tpl>')
            }
        },

我想要实现的是这个。

编辑行时,我希望组合的选定值成为隐藏字段中的值。

这甚至可能吗?

我试过这样做:(在组合上)

value: Ext.ComponentQuery.query("#TipoVisitaID")[0] == null ? '' : Ext.ComponentQuery.query("#TipoVisitaID")[0].value

但它不起作用......

4

3 回答 3

0

添加事件侦听器以编辑网格上的事件并从那里更新隐藏字段中的数据。此事件将在编辑完成后触发。

grid.on('edit', function (editor, e){ 
     e.record.set('TipoVisitaID', e.value);
}
于 2012-10-10T11:10:55.670 回答
0

你在寻找这样的东西吗?

var theHidden = Ext.getCmp('TipoVisitaID');
var theCombo = Ext.getCmp('TiposVisitaCombo'); =
theCombo.on('change', function(combo, newValue, oldValue, e){
  theHidden.setValue(newValue);
});
于 2012-10-10T11:37:23.537 回答
0

我已经解决了这个问题。

{
            text: 'TIPO VISITA',
            flex: 1,
            sortable: true,
            align: 'right',
            dataIndex: 'TipoVisitaID',
            renderer: function (loader, response, active) {
                return active.raw.TipoVisita;
            },
            editor: {
                xtype: 'combo',
                allowBlank: true,
                store: allTiposVisita,
                valueField: 'Id',
                name: 'TiposVisitaCombo',
                itemId: 'TiposVisitaCombo',
                tpl: Ext.create('Ext.XTemplate',
                                    '<tpl for=".">',
                                        '<div class="x-boundlist-item">{Designacao}</div>',
                                    '</tpl>'),
                displayTpl: Ext.create('Ext.XTemplate', '<tpl for=".">', '{Designacao}', '</tpl>')
            }
        },

首先,我将 dataIndex 更改为 ID。但是现在用户会看到 ID 而不是数据,这就是我使用渲染器的原因,以便用户看到数据而不是 ID。

然后,我将侦听器“beforeedit”添加到我执行此操作的网格中:

Ext.ComponentQuery.query("#TiposVisitaCombo")[0].setValue(e.record.raw.TipoVisitaID);

因此使用 ID 设置组合的值(使其成为预选的组合)。

于 2012-10-10T12:02:39.477 回答