我有两个组合,我想强制选择第一个组合(雇主组合),之后选择组合2(员工组合) )是启用。
ExtJS 4.2.1
组合的代码是:
{
xtype: 'combobox',
store: Ext.create('SoftHuman.store.catalog.Employer', {
autoLoad: true
}),
displayField: 'Description',
valueField: 'EmployerId',
fieldLabel: 'Company',
name: 'EmployerId',
queryMode: 'local',
allowBlank: true
}, {
xtype: 'combobox',
anchor: '100%',
store: Ext.create('SoftHuman.store.employee.EmployeeCombo'),
displayField: 'FullName',
valueField: 'EmployeeId',
queryMode: 'remote',
fieldLabel: 'Employee',
editable: true,
hideTrigger: true,
queryParam: 'searchStr',
name: 'EmployeeId',
allowBlank: true,
listConfig: {
loadingText: 'Searching...',
// Custom rendering template for each item
getInnerTpl: function () {
return '<b>{EmployeeNumber}</b> / {FullName}';
}
}
},
现在我的远程组合employee combo
发送到查询参数&#34; searchStr
&#34;这是在组合中键入的字符串。我还需要传递组合1(employer combo
)中的选择。
我怎样才能做到这一点?感谢。
答案 0 :(得分:0)
使用类似的东西。
Ext.ComponentQuery.query(&#39; EmployerId&#39)。值
Ext.getCmp(&#39; EmployerId&#39)。值
var empValue = getComponent(&#39; EmployerId&#39;)。value
如果.value不起作用,那么尝试getValue()方法。
希望这有帮助。
在第二个组件(EmployeeId)中添加配置已禁用:加载时为true。 然后将afterrender listener添加到第一个。然后设置其他组合可用。 然后这样做............................................... .............................
{
xtype: 'combobox',
store: Ext.create('SoftHuman.store.catalog.Employer', {
autoLoad: true
}),
displayField: 'Description',
valueField: 'EmployerId',
fieldLabel: 'Company',
name: 'EmployerId',
queryMode: 'local',
allowBlank: true
listeners: { <---------------------here
select: function(combo, selection) {
if (combo.getValue() != undefined) {
Ext.ComponentQuery.query('EmployeeId').setDisabled(false)
} <----------------------------- to here
}, {
xtype: 'combobox',
anchor: '100%',
store: Ext.create('SoftHuman.store.employee.EmployeeCombo'),
displayField: 'FullName',
valueField: 'EmployeeId',
queryMode: 'remote',
fieldLabel: 'Employee',
editable: true,
disabled:true, <------------add this
hideTrigger: true,
queryParam: 'searchStr',
name: 'EmployeeId',
allowBlank: true,
listConfig: {
loadingText: 'Searching...',
// Custom rendering template for each item
getInnerTpl: function () {
return '<b>{EmployeeNumber}</b> / {FullName}';
}
}
},
希望这会有所帮助:)