ExtJS从其他combobox所选记录填充combobox
(ExtJS 4.2.1) 我有两个ExtJS从其他combobox所选记录填充combobox,extjs,extjs4,extjs4.1,extjs4.2,extjs-mvc,Extjs,Extjs4,Extjs4.1,Extjs4.2,Extjs Mvc,(ExtJS 4.2.1) 我有两个组合框,用于搜索员工 一个按员工编号搜索员工,另一个按姓名搜索员工: 这是两个组合框共享的存储: var cboEmployeeStore = Ext.create('App.store.employee.EmployeeCombo'); cboEmployeeStore.getProxy().extraParams = { employerId: 0 }; xtype: 'combobox', itemId: 'cboEmployeeNum
组合框
,用于搜索员工
一个按员工编号搜索员工,另一个按姓名搜索员工:
这是两个组合框共享的存储:
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}';
}
}
这些是我的组合框:
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}';
}
}
xtype:'combobox',
itemId:'cboEmployeeNumber',
宽度:180,
门店:cboEmployeeStore,
cls:“arigth”,
显示字段:“EmployeeNumber”,
valueField:“EmployeeId”,
queryMode:'远程',
字段标签:“Clave”,
是的,
希德崔格:没错,
queryParam:'searchStr',
姓名:'EmployeeNumber',
allowBlank:false,
明查斯:3,
列表配置:{
loadingText:“正在搜索…”,
最小宽度:300,
//每个项目的自定义渲染模板
getInnerTpl:函数(){
返回“{EmployeeNumber}/{FullName}”;
}
}
xtype:“组合框”,
itemId:“cboEmployee”,
宽度:400,
门店:cboEmployeeStore,
cls:“arigth”,
displayField:'全名',
valueField:“EmployeeId”,
queryMode:'远程',
fieldLabel:“员工”,
是的,
希德崔格:没错,
queryParam:'searchStr',
姓名:'EmployeeId',
allowBlank:false,
列表配置:{
loadingText:“正在搜索…”,
//每个项目的自定义渲染模板
getInnerTpl:函数(){
返回“{EmployeeNumber}/{FullName}”;
}
}
两者都使用同一个商店。这些存储是远程的,所以在您键入后,存储将由服务器的结果填充
我需要的是,如果我在cboEmployeeNumber
组合框中搜索,然后选择一个值,那么我的cboEmployee
应该会得到相同的记录。如果我在cboEmployee
中搜索,情况也是一样的
有什么提示吗?听听组合框上的select事件。当它被激发时,让它更新另一个组合框
注意不要在循环中触发事件 我有一些线索可以帮助你,但是你自己试过什么呢?我试过:me.getEmployeeCombo.setValue(record.get('EmployeeId');但是我怎样才能更新它呢?我的意思是两个都使用同一个存储区,我会自动加载存储区。为什么有两个组合框?如果只有一个组合框,可以同时按姓名和id进行搜索,那不是更好吗?这就是为什么我以。只有一个选项可以按两种类型的数据进行搜索。