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

私は問題を解決しました。

{
            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 に答える
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 に答える