带CheckBox的Extjs ComboboxTree

实现效果如下:

Ext.onReady(function()
      {
          //自定义扩展一个带Tree的comboBox
          Ext.ux.LovTreeCombo = Ext.extend(Ext.form.ComboBox, {
          initList: function() {
              this.list = new Ext.tree.TreePanel({
                  floating: true,
                  autoHeight: false,
                  autoExpand: true,
                 height: ,
                 rootVisible: false,
                 containerScroll: true,
                 dataUrl: this.url,
                 root: {
                     nodeType: 'async',
                     text: 'root',
                     draggable: false,
                     id: 'root'
                 }
          ,

                 listeners: {
                     checkchange: this.onNodeCheckChange,
                     scope: this

                 },
                 useArrows: true,
                 alignTo: function(el, pos) {
                     this.setPagePosition(this.el.getAlignToXY(el, pos));
                 }
             });

         },

         expand: function() {
             if (!this.list.rendered) {
                 this.list.render(document.body);
                 this.list.setWidth("px");
                 this.innerList = this.list.body;
                 this.list.hide();
             }
             this.el.focus();
             Ext.ux.LovTreeCombo.superclass.expand.apply(this, arguments);
         },

         doQuery: function(q, forceAll) {
             this.expand();
         },

         collapseIf: function(e) {
             if (!e.within(this.wrap) && !e.within(this.list.el)) {
                 this.collapse();
             }
         },

         valueList: [],
         textList: [],

         getvalueList: function() {
             return this.valueList;
         },

         onNodeCheckChange: function(node, e) {
             if (!node.leaf) {
                 node.expand(true, false, function() {
                     node.eachChild(function(child) {
                         child.ui.toggleCheck(node.attributes.checked);
                         child.attributes.checked = node.attributes.checked;
                         child.fireEvent('checkchange', child, node.attributes.checked);
                     });

                 });

             }
             else {
                 //alert()
                 var nodeValue = node.id;
                 var test = this.valueList.indexOf(nodeValue);

                 if (test == - && node.attributes.checked) {
                     this.valueList.push(nodeValue)
                     this.textList.push(node.text);
                 }

                 if (test != - && !node.attributes.checked) {
                     this.valueList.remove(nodeValue);
                     this.textList.remove(node.text);
                 }

                 //if(window.console){console.log(this.valueList.toString())}共选择了'+this.valueList.length.toString()+'菜单:'+
                 var str = this.textList.toString();
                 this.setRawValue(str);

                 if (this.hiddenField) {
                     this.hiddenField.value = node.id;
                 }
             }
             //this.collapse();
        },
        url: '',
        reset: function() {

            this.valueList.length = ;
            this.textList.length=;
            this.applyEmptyText();

        },

        resetNode: function(node) {
            this.collapseNode(node);
            this.uncheckNode(node);
        },

        collapseNode: function(node) {
            if (node.isExpanded()) {
                node.collapse();
           }
        },

        uncheckNode: function(node) {

            if (node.getUI().isChecked()) {
                if (window.console) { console.log("未能选中此节点ID " + node.attributes.id) }

                node.getUI().toggleCheck(false);
            }
        }

    });

    //这边注册一下子
    Ext.reg('treecombo', Ext.ux.LovTreeCombo);

   //这边是使用方法
    var lovTreeCombo = new Ext.ux.LovTreeCombo({
    id:'cmb',
    renderTo: 'cmb',
    url: 'LoadTreeMenu.aspx ',
    emptyText: '选择类型',
    width: ,
    listWidth:
    });

    })

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索function
, this
, node
, checked
, valuelist
, getui
, ComboBoxTree
Attributes
extjs comboboxtree、extjs tree checkbox、extjs4 tree checkbox、combobox checkbox、combobox添加checkbox,以便于您获取更多的相关知识。

时间: 2024-08-28 12:40:54

带CheckBox的Extjs ComboboxTree的相关文章

一个带checkbox的webcontrol

web 谢谢大家,无以回报,贴点儿东西吧. 刚才看到下边不少人问给datatable或table添加一个选择框,实际上如果你可以自己做一个webcontrol来实现这个功能,下边是我做的一个带checkbox的webcontrol,由于注释比较全,所以我就不加说明了. using System;using System.Collections ;using System.Web.UI.WebControls ;using System.Web.UI ; namespace Bigeagle.We

easyui tree带checkbox实现单选的简单实例_javascript技巧

实例如下: <ul id="regionTree"></ul> $('#regionTree').tree({ cascadeCheck: false, //onlyLeafCheck: true, checkbox: true, data: [{ "id": 1, "text": "My Documents", "children": [{ "id": 11,

Silverlight Telerik控件学习:带CheckBox复选框的树形TreeView控件

在web开发中,带checkbox的tree是一个很有用的东东,比如权限选择.分类管理,如果不用sl,单纯用js+css实现是很复杂的,有了SL之后,就变得很轻松了 解决方案一: 利用Silvelright ToolKit(微软的开源项目),项目地址http://silverlight.codeplex.com/ 在线演示地址:http://silverlight.net/content/samples/sl4/toolkitcontrolsamples/run/default.html 解决方

动态生成的带checkbox的treepanel父子联动

问题描述 动态生成的带checkbox的treepanel父子联动 先说下状况与需求:我的treepanel是通过点击父节点然后从数据库查询创建子节点的,所以需要在点击父节点时判断子节点个数并实现全选全不选,要求父节点选中则子节点全选,子节点有一个取消则父节点的checkbox变成未选择状态,基本就是这样,不够告诉我,我来补充.. 解决方案 算了,改需求了,不用这个了 解决方案二: 就看你们的了,.! 解决方案三: 就看你们的了,.! 解决方案四: 这有现成的树插件,去学习学习怎么用吧!http

带checkbox的treeview输出到浏览器的问题.

问题描述 因为有个问题要涉及到javascript对treeview的checkbox的操作,我看了treeview在客户端的源码,好多的div,href,table,具体不知道它是怎么有这些标签拼成的,哪位能告诉我么? 解决方案 解决方案二:今天早上的目的是把0回复的顶起来解决方案三:顶起来解决方案四:该回复于2007-12-04 11:20:10被版主删除

求助,关于dtree带checkbox的取消勾选事件,大牛请进!

问题描述 functioncheckNoPar(chkBox){if(chkBox.name.toLowerCase()=='check'&&!chkBox.checked&&chkBox.className!=0){//判断本节点为不选中varchkObject=document.getElementById(chkBox.className);//得到父目录对象chkObject.checked=false;checkNoPar(chkObject);}} 这个chkB

求S2SH+ext tree带checkbox的代码 急~~~~

问题描述 tree是个权限导航树 能进行修改什么的 有的发邮件290806418@qq.com 急啊 ~~~~~~~~~~~~~~~~~~~ 问题补充:数据库建表要有什么字段 我的只有 id name parentidextjs tree 识别的json该如何生成(action中怎么写 是通过拼字符串(怎么拼) 还是JSONArray.fromObject(0)直接能被extjs tree识别) 小弟刚接触EXT BOSS让弄个权限导航树 一星期了没弄出来 网上找不到很像的代码 (我觉得是我看不

Silverlight中实现带CheckBox的多选下拉框(源码下载)

第一种格式:使用DisplayPath和SelectedValuePath,使用自定义分隔符 "|" 第二种格式: 这个版本对于我们的项目应用已经够了,但是其中还有一个问题没有解决 SelectedValue的双向绑定有些问题.从源端到控件的绑定还没有处理 好了下面我们来看代码CheckedComboBox.cs using System; using System.Windows; using System.Windows.Controls; using System.Windows

手把手教你如何扩展GridView之自带CheckBox

我们在使用GridView的时候,很多时候需要使用CheckBox列,比如批量删除,批量审批,但是每每都需要记住繁琐的实现方法.多麻烦呀!再次给GridView做个手术,让它自己就能产生CheckBox岂不爽死了.以后您就有权利忘记怎么实现CheckBox列了.哈哈,作咱们这行的,就要学的慢慢退化,什么事情都记着,累也累死了.      下面谈谈我这实现的思路:      因为GridView是基于模板的,Columns也不能在后台添加,所以排除通过添加Column来实现,而采用在GridVie