ExtJS从其他组合框选择的记录中填充组合框

时间:2014-07-11 15:53:21

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

(ExtJS 4.2.1) 我有两个combobox用于搜索员工。

按员工编号搜索员工,另一个按姓名搜索员工:

这是两个组合框共享的商店:

var cboEmployeeStore = Ext.create('App.store.employee.EmployeeCombo');
cboEmployeeStore.getProxy().extraParams = {
    employerId: 0
};

这些是我的组合框:

xtype: 'combobox',
    itemId: 'cboEmployeeNumber',
    width: 180,
    store: cboEmployeeStore,
    cls: 'arigth',
    displayField: 'EmployeeNumber',
    valueField: 'EmployeeId',
    queryMode: 'remote',
    fieldLabel: 'Clave',
    editable: true,
    hideTrigger: true,
    queryParam: 'searchStr',
    name: 'EmployeeNumber',
    allowBlank: false,
    minChars: 3,
    listConfig: {
        loadingText: 'Searching...',
        minWidth: 300,
        // Custom rendering template for each item
        getInnerTpl: function () {
            return '<b>{EmployeeNumber}</b> / {FullName}';
        }
    }

xtype: 'combobox',
    itemId: 'cboEmployee',
    width: 400,
    store: cboEmployeeStore,
    cls: 'arigth',
    displayField: 'FullName',
    valueField: 'EmployeeId',
    queryMode: 'remote',
    fieldLabel: 'Employee',
    editable: true,
    hideTrigger: true,
    queryParam: 'searchStr',
    name: 'EmployeeId',
    allowBlank: false,

    listConfig: {
        loadingText: 'Searching...',
        // Custom rendering template for each item
        getInnerTpl: function () {
            return '<b>{EmployeeNumber}</b> / {FullName}';
        }
    }

两者都使用同一商店。商店是远程的,因此在您键入后,商店将填充服务器的结果。

  
    

我需要的是,如果我在cboEmployeeNumber组合框中搜索然后选择一个值,那么我的cboEmployee应该得到相同的记录。如果我在cboEmployee进行搜索,也一样。

  

有任何线索如何做到这一点?

1 个答案:

答案 0 :(得分:0)

收听组合框上的选择事件。当它被解雇时它会更新另一个组合框。

请注意事件不要在循环中被解雇。