Extjs实现下拉菜单效果_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下拉菜单
Extjs下拉菜单效果
extjs 下拉菜单、extjs 下拉树形菜单、extjs实现树形菜单、extjs 实现表格效果、css实现下拉菜单,以便于您获取更多的相关知识。

时间: 2024-09-28 23:31:23

Extjs实现下拉菜单效果_extjs的相关文章

jquery实现二级导航下拉菜单效果_jquery

下拉菜单实现很简单,纯css也能实现,但是我不擅长,用jquery也就两行代码,于是就用jquery+css实现简单二级下拉菜单导航,分享给大家供大家参考,具体内容如下 运行效果图: 具体代码:第一步:确定导航的html格式 <ul id="nav"> <li><a href="#">首页</a> <ul> <li><a href="#">PHP编程</a&

jquery实现很酷的网页顶部图标下拉菜单效果_jquery

本文实例讲述了jquery实现很酷的网页顶部图标下拉菜单效果.分享给大家供大家参考.具体如下: 兼容IE和火狐的顶部菜单栏,带图标的图文菜单,还有右上角的下拉导航效果,一个演示包括了两种菜单,都是很实用的效果,只使用了jquery就实现了.如果你的网站上此前用有jquery插件,那么整合起来就更方便了,点击运行可预览菜单效果. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/jquery-web-top-ico-show-menu-style-c

jQuery实现的导航下拉菜单效果示例_jquery

本文实例讲述了jQuery实现的导航下拉菜单效果.分享给大家供大家参考,具体如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <h

js 单击式的下拉菜单效果实例_javascript技巧

复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv=&qu

JS实现样式清新的横排下拉菜单效果_javascript技巧

本文实例讲述了JS实现样式清新的横排下拉菜单效果.分享给大家供大家参考.具体如下: 这是一款灰色调横排清新的下拉菜单,完全符合WEB标准,兼容性不错,菜单简洁好用,适合大部分的网页风格.如果色调不是你想要的,自己发挥聪明才智,修改一下吧. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/js-simple-style-hp-menu-demo/ 具体代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML

JS+CSS实现的经典圆角下拉菜单效果代码_javascript技巧

本文实例讲述了JS+CSS实现的圆角下拉菜单效果代码.分享给大家供大家参考,具体如下: 相信不少朋友会喜欢这一款菜单,CSS+JS实现的圆角下拉菜单,没有使用任何修饰性的图片哦,圆角完全是用JS完成的,因此代码多了些,想使用的朋友把JS文件提取出来另存,这样更合理些. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/js-css-jd-cicle-style-button-demo/ 具体代码如下: <!DOCTYPE html PUBLIC &qu

JS模拟bootstrap下拉菜单效果实例_javascript技巧

本文实例讲述了JS模拟bootstrap下拉菜单效果.分享给大家供大家参考,具体如下: 模拟bootstrap下拉菜单 在工作中要切一个效果:点击导航栏,则出现下列菜单,但是当点击其他地方的时候,就隐藏子菜单,效果有点类似于bootstrap 的"下拉菜单" 由于bootstrap的子菜单的样式与设计不同,因此需要自己写一个类似的效果 当点击某个控件的时候,则显示出下拉菜单,但是,当点击空白的地方的时候怎么让其自动隐藏呢? 起初的想法,给body绑定一个onclick事件,当点击空白的

jquery实现简单的二级导航下拉菜单效果_jquery

本文实例讲述了jquery实现简单的二级导航下拉菜单效果.分享给大家供大家参考.具体如下: jQuery代码实现的二级导航菜单效果,非常简洁,喜欢简洁风格的朋友您可以下载哦.菜单最多支持两级,CSS的配合也是挺重要的,不多说了,要代码的就直接复制吧. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/jquery-2jxl-menu-codes/ 具体代码如下: <title>jquery二级导航菜单</title> <styl

jQuery实现的精美平滑二级下拉菜单效果代码_jquery

本文实例讲述了jQuery实现的精美平滑二级下拉菜单效果.分享给大家供大家参考,具体如下: 这是一款jQurey实现的向下二级导航菜单效果.效果非常不错,由上到下平滑延伸,给人的感觉协调唯美!js与html代码结构简单明了,便于使用与修改! 运行效果截图如下: 具体代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xh