combo 二级联动

{
									xtype : 'combo',
									hiddenName : 'selPersonForUnit',
									fieldLabel : '选择人员',
									triggerAction : 'all',
									readOnly : true,
									editable : false,
									lazyInit : false,
									mode : 'local',
									store : UnitPersonsDS,
									displayField : 'persName',
									valueField : 'persid',
									listeners : {
										select : function(combo, record, index) {
											UnitFuncDS.load({
														params : {
															persid : combo
																	.getValue()
														}
													});
										}
									}
								}, {
									xtype : 'combo',
									hiddenName : 'selFuncForUnit',
									fieldLabel : '选择岗位',
									triggerAction : 'all',
									readOnly : true,
									editable : false,
									lazyInit : false,
									mode : 'local',
									store : UnitFuncDS,
									displayField : 'funcName',
									valueField : 'funcId'
								}

 我是这样做的

2个 combo 都是local,store的数据从服务器读

点击一个按钮会弹出一个window,上面就有这2个combo,在弹出的时候就第一个combo的store就会去load数据,然后因为combo的mode 为local,这时下拉第一个combo会展示加载好的数据(假如为remote的话会再次加载,造成浪费)

然后设置第一个combo的select事件是加载第2个combo的store的数据(把第一个combo的选择数据传到后台),然后下拉第2个的时候就可以展示数据,以此类推可以一直联动下去

 

关于mode

假如为local 则 点击下拉的时候 直接combo去取store的数据  然后展示 不管有没有

假如为remote 则一定会让store load一次,不管之前是否已有数据

你可能感兴趣的:(combo)