ExtJS远程组合 - 添加其他过滤参数(来自其他组合选择)

时间:2014-07-09 23:40:25

标签: extjs extjs4 extjs4.1 extjs4.2 extjs-mvc

我有两个组合,我想强制选择第一个组合(雇主组合),之后选择组合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)中的选择。

我怎样才能做到这一点?感谢。

1 个答案:

答案 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}';
        }
    }
},

希望这会有所帮助:)