当项目中需要一个部门人员选择或者省市县地域连选时,就需要树形结构的连选。

再此,写了一个简单的树形结构三连选功能,模拟从后台读取数据和处理数据(欢迎大家交流指正)。

代码如下:

循环创建三棵树,其中只有第一棵树有数据,并从后台读取。

       var root = new Array();
var tree = new Array();
var loader = new Ext.tree.TreeLoader({
dataUrl: 'datatree.aspx'
})
for (var i = 0; i < 3; i++) {
root[i] = new Ext.tree.AsyncTreeNode({
id: 'root' + i + '',
text: '树' + i + ''
})
tree[i] = new Ext.tree.TreePanel({
animate: true, //是否展开有动画效果
title: '我是第' + i + '棵树',
collapsible: true,
enableDD: true, //是否可以拖放
enableDrag: true, //节点是否可以拖动
rootVisible: true, //根节点是否禁用
autoScroll: true, //是否有滚动条
autoHeight: true,
width: 200,
lines: true,
useArrows: true,
root: root[i]
})
}

配置treePanel属性:

这里需要注意的是:一定要为第二三棵树的根节点设置leaf=true属性,否则加载页面后默认这两棵树根节点下有节点,将会影响程序正常运行

       root[1].leaf = true;
       root[2].leaf = true;
tree[0].region = 'west';
tree[0].loader = loader;
tree[1].region = 'center';
tree[2].region = 'east';

创建window:

var win = new Ext.Window({
title: "window",
height: 500,
width: 600,
plain: true,
layout: 'border',
defaults: {
split: true, //是否有分割线
collapsible: true, //是否可以折叠
bodyStyle: 'padding:15px'
},
items: [tree[0], tree[1], tree[2]]
})
win.show();

为treePanel添加双击事件:

分别为第一棵和第二棵树添加事件:

       tree[0].on('dblclick', function (node, event) {
tree[1].loader.dataUrl = 'treeNode/tree1_1.aspx?name=' + node.text + '';
tree[1].getRootNode().setText('' + node.text + '');
tree[1].root.reload();
tree[1].root.expand(true);
});
tree[1].on('dblclick', function (node, event) {
tree[2].loader.dataUrl = 'treeNode/tree1_1.aspx?name=' + node.text + '';
tree[2].getRootNode().setText('' + node.text + '');
tree[2].root.reload();
tree[2].root.expand(true);
});

后台数据处理页面:

tree1_1.aspx页面:
string param = Request.Params["name"];
data = "[{text:'" + param + ".1',leaf:true},{text:'" + param + ".2',leaf:true},{text:'" + param + ".3',leaf:true}]";
datatree.aspx页面:
data = "[{text:'10.1',leaf:true},{text:'10.2',leaf:true},{text:'10.3',leaf:true}]";

效果图:

Extjs实现树形结构三连选的更多相关文章

  1. elementui禁用树形结构全部复选框

    需求:编辑回显数据后,禁用树形结构复选框,不可选中,无复选框也不可选中 <el-tabs v-model="activeName" @tab-click="hand ...

  2. Extjs,实现树形结构的总结

    工作总结,用extjs.mybatis.springMVC实现树形显示班级 前台extjs实现树形代码如下: xtype : 'combotree', fieldLabel : '部门名称', nam ...

  3. GridView 树形结构分组的功能

    在“会飞的鱼”博客中看到GridView实现树形结构的代码,经过修改,添加了树形结构中的复选框功能,欢迎吐槽. 源地址:http://www.cnblogs.com/chhuic/archive/20 ...

  4. jQuery+zTree加载树形结构菜单

    jQuery+zTree加载树形结构菜单 由于项目中需要设计树形菜单功能,经过一番捣腾之后,终于给弄出来了,所以便记下来,也算是学习zTree的一个总结吧. zTree的介绍: 1.zTree 是利用 ...

  5. Android - N级树形结构实现

    目前已经实现3级之内的任意级树形结构展示(如果想增加更多级,需要扩展排序算法),并支持单选和多选(使用不同的适配器). 实现使用的控件:ListView 首先,最重要的应该是数据源的格式,支持树形结构 ...

  6. 数据库索引 引用树形结构 B-数 B+数

    MySQL 为什么使用B+数 B-树和B+树最重要的一个区别就是B+树只有叶节点存放数据,其余节点用来索引,而B-树是每个索引节点都会有Data域. 这就决定了B+树更适合用来存储外部数据,也就是所谓 ...

  7. EasyUI之树形结构tree

    转自:https://blog.csdn.net/ya_1249463314/article/details/70305730 版权声明:本文为博主原创文章,未经博主允许不得转载. https://b ...

  8. 纯css实现树形结构

    纯css实现属性结构 **css实现属性结构的思路是利用伪类实现树形结构连接线,如果想实现点击展开和收 缩以及复选框效果还得配合js来实现.其实展开和收缩就是一个点击元素其子元素隐藏 和显示的切换.* ...

  9. VUE实现Studio管理后台(七):树形结构,文件树,节点树共用一套代码NodeTree

    本次介绍的内容,稍稍复杂了一点,用VUE实现树形结构.目前这个属性结构还没有编辑功能,仅仅是展示.明天再开一篇文章,介绍如何增加编辑功能,标题都想好了.先看今天的展示效果: 构建树必须用到递归,使用s ...

随机推荐

  1. Lua,Lua API,配置文件

    想像一个场景:你的c程序须要有一个窗体,你想让用户能够自己定义窗体大小.方法非常多.比方使用环境变量,或键值对的文件. 无论如何,你须要解析它. 使用lua配置文件是个不错的选择. 首先,你能够定义例 ...

  2. sizeof,终极无惑(上)

    0. 前向声明 sizeof,一个其貌不扬的家伙,引无数菜鸟竟折腰,小虾我当初也没少犯迷糊,秉着“辛苦我一个,幸福千万人”的伟大思想,我决定将其尽可能具体的总结一下. 但当我总结的时候才发现,这个问题 ...

  3. Python+Django+SAE系列教程11-----request/pose/get/表单

    表单request,post,get 首先我们来看看Request对象,在这个对象中包括了一些实用的信息,学过B/S开发的人来说这并不陌生,我们来看看在Django中是怎样实现的: 属性/方法 说明 ...

  4. BitNami Redmine Stack

    BitNami Redmine Stack 是打包了 Redmine 的一键安装程序包,包括:Apache, MySQL, Ruby On Rails, and Subversion Redmine ...

  5. vim下使用YouCompleteMe实现代码提示、补全以及跳转设置

    配置YouCompleteMe 1. 安装vundle vundle是一个管理vim插件的工具,使用vundle安装YouCompleteMe比较方便. 按照作者在https://github.com ...

  6. 【Eclipse Plugin】SonarQube 启动报错

    由于近期,信息安全部在搞代码优化工作.所以,配合上边的工作需求,使用sonar对代码进行优化检测.在Eclipse上装Sonar很简单,只要在Eclipse Marketplace上面搜索“Sonar ...

  7. for(;;)和 while(1) 有什么区别吗?for()和while()的使用情景。

    1 for(;;)和 while(1) 有什么区别吗? void main(void) { ; // for(;;) ) { a++; } } arm-linux-gcc -c -o for.o fo ...

  8. android 判断网络连接的工具类

    package com.way.util; import android.content.Context; import android.net.ConnectivityManager; import ...

  9. Android:设置背景图和标题

    在MainActivity.onCreate(Bundle savedInstanceState){}设置背景图和标题. setTitle("wyl的diary");//标题,即左 ...

  10. ECSHOP常用函数

    lib_time.php gmtime() #获得当前格林威治时间的时间戳 /$0 server_timezone() #获得服务器的时区 /$0 local_mktime($hour = NULL ...