Extjs4 Sencha网格:隐藏列和组合框
首先是代码的一小部分:Extjs4 Sencha网格:隐藏列和组合框,extjs4,extjs,Extjs4,Extjs,首先是代码的一小部分: { text: 'TipoVisitaID', hidden: true, dataIndex: 'TipoVisitaID', itemId: 'TipoVisitaID' }, { text: 'TIPO VISITA', flex: 1, sortable: true,
{ 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>')
}
},
但它不起作用…添加一个事件侦听器来编辑网格上的事件,并从那里更新隐藏字段中的数据。编辑完成后将触发此事件
grid.on('edit', function (editor, e){
e.record.set('TipoVisitaID', e.value);
}
你在找这样的东西吗
var theHidden = Ext.getCmp('TipoVisitaID');
var theCombo = Ext.getCmp('TiposVisitaCombo'); =
theCombo.on('change', function(combo, newValue, oldValue, e){
theHidden.setValue(newValue);
});
我已经解决了这个问题
{
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>')
}
},
因此,使用ID设置组合的值(使其成为预选的值)。您希望何时执行此操作?使用方法
getValue()
而不是value
。getValue()也不起作用。。。我希望当内联编辑开始时,组合框有一个预先选择的值。这仅在用户直接单击单元格时有效。。。我希望预选值独立于单击的单元格“显示”…Ext.getCmp(“#TipoVisitaID”)返回未定义的值。另外,我想要的是combo.setValue(theHidden),这样当combo呈现时,隐藏的值将是预选的值。哎呀,我的错误是,我几乎不使用getCmp,也没有测试代码。我想你可以用你的代码
{
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>')
}
},
Ext.ComponentQuery.query("#TiposVisitaCombo")[0].setValue(e.record.raw.TipoVisitaID);