extJs ComboBox级联

1 篇文章 0 订阅

 文档目标:实现extJs之ComboBox联动

    

1、html代码

    

<body>
 <!-- 定义form显示Div-->
<div id="mmFormDiv" style="height: 50px;"></div>
</body>

 

 

2、Javascript代码

   

var comboShipOption= Ext.decode("<%=shipStr%>");
var comboDepOption="<%=depStr%>";
comboDepOption = comboDepOption.split("@");
var mmQuery_form =  new Ext.form.FormPanel({
	id:'mmQueryForm', 
	frame : true,
                border : false,
                labelWidth:55,
	width:250,
	height:30,
	region:'north',//定义在border layout中显示位置
	buttons: [{
                       id:'find_btn',
                       text: '搜索',
                       clickEvent:function(){
                            //你的处理逻辑
	       }
                 }] 
});
var dep_query_comboBox = null;
if(comboDepOption != '[]'){ 
     dep_query_comboBox = new Ext.form.ComboBox({
     id:'depQueryComboBox',
     fieldLabel : 部门名称,
     name:'depName',
     hiddenName: 'depId',
     emptyText : "请选择部门",
     mode: 'local',
     store :new Ext.data.SimpleStore({ 
	   fields: ["depId","depName"],   
	   data: [] 
     }),
     editable : false,
     allowBlank: false,
     triggerAction : "all",
     displayField : "depName",
     valueField : "depId"
    }); 
}  
if(comboShipOption != '[]'){
      var ship_opt_fileds = Ext.data.Record.create([
          {name: 'shipId', mapping: 0},
          {name: 'shipName', mapping: 1}
       ]);
       var ship_combo_proxy = new Ext.data.MemoryProxy(shipOpt); 
       var ship_query_comboBox = new Ext.form.ComboBox({
         id:'shipQueryComboBox',
         fieldLabel : 舰船名称,
         name: 'shipName',
         hiddenName: 'shipId',
         emptyText : "请选择舰船",
         store :new Ext.data.Store({
                       reader:new Ext.data.ArrayReader({},ship_opt_fileds), 
	       proxy:ship_combo_proxy
         }),
        editable : false,
        allowBlank: false,
        triggerAction : "all",
        displayField : "shipName",
        valueField : "shipId",
        listeners:{   
             select:function(combo, record,index){   
	    if(dep_query_comboBox != null){
                          dep_query_comboBox.clearValue();  
	           var select_index = parseInt(this.value);
	           var dep_arr = new Array();
	           var deps_options = comboDepOption[select_index];
	           dep_arr[select_index] = new Array();
	           var dep_options = deps_options.split("&");
	           for(var j =0;j < dep_options.length; j++){ 
		   var dep_opt_array = new Array();
		   var dep_option = dep_options[j].split(',');
		   var dep_option_id = dep_option[0];
		   var dep_option_name = dep_option[1];
		   dep_opt_array[0]=dep_option_id;
		   dep_opt_array[1]=dep_option_name;
		   dep_arr[select_index][j]=dep_opt_array;
	           } 
                          dep_query_comboBox.store.loadData(dep_arr[ship_index]);
	     } 
              }   
          } 
       }); 
   mmQuery_form.add(ship_query_comboBox);
}   
mmQuery_form.add(dep_query_comboBox);
mmQuery_form.render('mmFormDiv');

  

   3、JSP测试数据

   

//动态生成如下格式字符串
<%String shipStr = "[[0,'ship1'],[1,'ship2']]";
String depStr = "11,dep1&22,dep2@33,dep3&44,dep4";%>

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值