Extjs实现下拉菜单效果
来源: 阅读:1467 次 日期:2016-07-12 14:32:10
温馨提示: 小编为您整理了“Extjs实现下拉菜单效果”,方便广大网友查阅!

本文实例为大家分享了Extjs实现下拉树效果,供大家参考,具体内容如下

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>text8</title>

  <link rel="stylesheet" type="text/css" href="../../../ext-4.2.1/resources/css/ext-all.css" >

  <script type="text/javascript" src="../../../ext-4.2.1/bootstrap.js"></script>

</head>

<body>

  <script>

       Ext.define('TreeComboBox',{ 

          extend : 'Ext.form.field.ComboBox', 

          store : {

            fields:[],

            data:[[]]

          }, 

          width:300,

          editable : false, 

          allowBlank:false, 

          multiSelect : true,

          listConfig : {

            resizable:false,

            minWidth:150,

            maxWidth:250,

          }, 

          _idValue : null, 

          _txtValue : null, 

          callback : Ext.emptyFn, 

          treeObj : null, 

          initComponent : function(){ 

              this.treeObj=new Ext.tree.Panel({ 

                border : false, 

                autoScroll : true, 

                rootVisible: false, 

                renderTo:this.treeRenderId, 

                root: {

                  text: 'root',draggable: false,expanded: true, 

                    children:[

                      {

                      text:'一级节点',expanded: true, checked:false ,

                        children:[

                          { text:'二级节点1',leaf:true,checked:false},

                          { text:'二级节点2',leaf:true,checked:false}

                          ]

                        } , 

                        {

                      text:'一级节点',expanded: true, checked:false ,

                        children:[

                          { text:'二级节点1',leaf:true,checked:false},

                          { text:'二级节点2',leaf:true,checked:false}

                          ]

                        }

                   ]

                 } ,

               listeners:{

                 checkchange:function(node,state){

                   if(node.hasChildNodes()){

                     for(var i=0;i<node.childNodes.length;i++){

                       node.childNodes[i].set('checked',state);

                       }

                     }

                   }

                 }

              });    

              this.treeRenderId = Ext.id(); 

              this.tpl = "<tpl><div id='"+this.treeRenderId+"'></div></tpl>";    

              this.callParent(arguments); 

              this.on({ 

                  'expand' : function(){ 

                    if(!this.treeObj.rendered&&this.treeObj&&!this.readOnly){ 

                        Ext.defer(function(){ 

                            this.treeObj.render(this.treeRenderId); 

                        },100,this); 

                    } 

                } 

            }); 

              this.treeObj.on('itemclick',function(view,rec){ 

                /* var roonodes = this.treeObj.getRootNode().childNodes;  //获取主节点

                 var childnodes = node.childNodes; //获取zi节点

                 if (roonodes.getView().getSelectionCount()==1) {

                  for(var i=0;i<childnodes.length;i++){

                    this.setValue(this._txtValue = rec.get('text'));  

                  }

                 }*/

                  if(rec){ 

                    //node.getUI().checkbox.indeterminate = true; //半选中状态 

                    this.setValue(this._txtValue = rec.get('text'));         

                    //this.collapse();//关闭tree 

                  } 

              },this); 

          }, 

      }); 

    //实例化下拉树 

    var xltree1=new TreeComboBox({ 

      fieldLabel : '下拉树1', 

      name:'xltree1111', 

      allowBlank:true 

    });  

    var xltree2=new TreeComboBox({ 

      fieldLabel : '下拉树2', 

      name:'xltree2222', 

      allowBlank:true 

    }); 

    Ext.create('Ext.form.Panel', { 

      renderTo: Ext.getBody(), 

      width: 500, 

      bodyPadding: 10, 

      title: 'TreeComboBox', 

      items: [xltree1, xltree2] 

    }); 

  </script>

</body>

</html>

问题:当选中复选框时候,如何使全部选中的条目添加显示到combobox中?

效果:

名单

下面是另一个:

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>tabpanel</title>

  <link rel="stylesheet" type="text/css" href="../../../ext-4.2.1/resources/css/ext-all.css" >

  <script type="text/javascript" src="../../../ext-4.2.1/bootstrap.js"></script>

</head>

<body>

  <script>

        Ext.onReady(function(){

            Ext.create('Ext.window.Window',{

                id: 'docaddId',

                title: 'Preferences',

                buttonAlign: 'center',

                width:500,

                layout:'fit',

                //height:400,

                resizable:false,

                items:

                    Ext.create('Ext.tab.Panel', {

                      //renderTo: Ext.getBody(),

                      items: [{

                        title: 'A',

                        items:[

                        //Process and associated workstation下拉选框

                        {

                  xtype:'container',

                  fieldLabel:'Workstation',

                  items:[{

                      xtype:"combobox",

                      name : 'Process and associated workstation',  

                  fieldLabel : 'Workstation',  

                  id:'aaa',

                  layout:'fit',

                  width:480,

                  editable : false,  

                  allowBlank : false,  

                  multiSelect : true,  

                  store : {  

                  fields : ['workstationId', 'workstationName'],  

                  data : [  

                    {'workstationId':'0',workstationName:'workstation01'},  

                    {'workstationId':'1',workstationName:'workstation02'},  

                    {'workstationId':'2',workstationName:'workstation03'},  

                    {'workstationId':'3',workstationName:'workstation04'}  

                  ]  

                  },  

                  listConfig : {  

                  itemTpl : Ext.create('Ext.XTemplate','<input type=checkbox>{[values.workstationName]}'),  

                  onItemSelect : function(record) {  

                    var node = this.getNode(record);  

                    if (node) {  

                    Ext.fly(node).addCls(this.selectedItemCls);  

                    var checkboxs = node.getElementsByTagName("input");  

                    if (checkboxs != null)  

                      var checkbox = checkboxs[0];  

                    checkbox.checked = true;  

                    }  

                  },  

                  listeners : {  

                    itemclick : function(view, record, item, index, e, eOpts) {  

                    var isSelected = view.isSelected(item);  

                    var checkboxs = item.getElementsByTagName("input");  

                    if (checkboxs != null) {  

                      var checkbox = checkboxs[0];  

                      if (!isSelected) {  

                      checkbox.checked = true;  

                      } else {  

                      checkbox.checked = false;  

                      }  

                    }  

                    }  

                  }  

                  },  

                  queryMode : 'remote',  

                  displayField : 'workstationName',  

                  valueField : 'workstationIda',  

                  }

                  ]

                        }]

                      }, {

                        title: 'B'

                      }, {

                        title: 'C'          

                      }, {

                        title: 'D'          

                      }]

                    })        

            }).show();

        });

  </script>

</body>

</html>

效果:

名单

以上就是本文的全部内容,希望对大家学习javascript有所帮助。

更多信息请查看网络编程
手机网站地址:Extjs实现下拉菜单效果
由于各方面情况的不断调整与变化, 提供的所有考试信息和咨询回复仅供参考,敬请考生以权威部门公布的正式信息和咨询为准!
关于我们 | 联系我们 | 人才招聘 | 网站声明 | 网站帮助 | 非正式的简要咨询 | 简要咨询须知 | 加入群交流 | 手机站点 | 投诉建议
工业和信息化部备案号:滇ICP备2023014141号-1 云南省教育厅备案号:云教ICP备0901021 滇公网安备53010202001879号 人力资源服务许可证:(云)人服证字(2023)第0102001523号
云南网警备案专用图标
联系电话:0871-65317125(9:00—18:00) 获取招聘考试信息及咨询关注公众号:hfpxwx
咨询QQ:526150442(9:00—18:00)版权所有:
云南网警报警专用图标
Baidu
map