extjs中treepanel例子

news/2024/11/15 9:39:51/文章来源:https://www.cnblogs.com/joe-tang/p/7144838.html

:TreePanel继承自Panel,在ExtJS中使用树控件含有丰富的属性和方法实现复杂的功能。其中Ext.tree.TreeNode代表一个树节点,比较常用的属性包括text、id、icon、checked等、异步树Ext.tree.AsyncTreeNode、树加载器Ext.tree.TreeLoader。下面介绍几个extjs中treepanel例子

一、TreePanel基本配置参数:

 
JScript 代码   复制
//TreePanel配置参数
animate:true//展开,收缩动画,false时,则没有动画效果
autoHeight:true//自动高度,默认为false
enableDrag:true//树的节点可以拖动Drag(效果上是),注意不是Draggable
enableDD:true//不仅可以拖动,还可以通过Drag改变节点的层次结构(drap和drop)
enableDrop:true//仅仅drop
lines:true//节点间的虚线条
loader:Ext.tree.TreeLoader//加载节点数据
root:Ext.tree.TreeNode//根节点
rootVisible:false//false不显示根节点,默认为true
trackMouseOver:false//false则mouseover无效果
useArrows:true//小箭头

 

二、TreeNode的基本配置参数:

 
JScript 代码   复制
//TreeNode常用配置参数
checked:false//true则在text前有个选中的复选框,false则text前有个未选中的复选框,默认没有任何框框
expanded:fasle//展开,默认不展开
href:"http:/www.cnblogs.com"//节点的链接地址
hrefTarget:"mainFrame"//打开节点链接地址默认为blank,可以设置为iframe名称id,则在iframe中打开
leaf:true//叶子节点,看情况设置
qtip:"提示"//提示信息,不过要 Ext.QuickTips.init();下
text:"节点文本"//节点文本
singleClickExpand:true//用单击文本展开,默认为双击

 

 

三、treepanel实例

 

1.第一个静态树--最简单的树
 

JScript 代码   复制
Ext.onReady(function(){

   var mytree=new Ext.tree.TreePanel({

       el:"container",//应用到的html元素id

       animate:true,//以动画形式伸展,收缩子节点

       title:"Extjs静态树",

       collapsible:true,

       rootVisible:true,//是否显示根节点

       autoScroll:true,

       autoHeight:true,

       width:150,

       lines:true,//节点之间连接的横竖线

       loader:new Ext.tree.TreeLoader(),//

       root:new Ext.tree.AsyncTreeNode({

           id:"root",

           text:"根节点",//节点名称

           expanded:true,//展开

           leaf:false,//是否为叶子节点

           children:[{text:'子节点一',leaf:true},{id:'child2',text:'子节点二',children:[{text:"111"}]}]

       })

   });

   mytree.render();//不要忘记render()下,不然不显示哦

})

 

效果图:

 

2.通过TreeNode自定义静态树

 

html代码

<body style="margin:10px;">
<div id="container">
</div>
<iframe name="mainFrame" id="mainFrame" height="100px" width="200px" src="jstest.htm"></iframe>

</body>

 
JScript 代码   复制
Ext.onReady(function(){

    Ext.QuickTips.init();

   var mytree=new Ext.tree.TreePanel({

       el:"container",

       animate:true,

       title:"Extjs静态树",

       collapsible:true,

       enableDD:true,

       enableDrag:true,

       rootVisible:true,

       autoScroll:true,

       autoHeight:true,

       width:150,

       lines:true

   });

   

   //根节点

   var root=new Ext.tree.TreeNode({

       id:"root",

       text:"控制面板",

       expanded:true

   });

   

   //第一个子节点及其子节点

   var sub1=new Ext.tree.TreeNode({

       id:"news",

       text:"新闻管理",

       singleClickExpand:true

   });

   sub1.appendChild(new Ext.tree.TreeNode({

       id:"addNews",

       text:"添加新闻",

       href:"http://www.baidu.com",

       hrefTarget:"mainFrame",

       qtip:"打开百度",

       listeners:{//监听

          "click":function(node,e){

                      alert(node.text)

                  }

       }

   }));

   sub1.appendChild(new Ext.tree.TreeNode({

       id:"editNews",

       text:"编辑新闻"

   }));

   sub1.appendChild(new Ext.tree.TreeNode({

       id:"delNews",

       text:"删除新闻"

   }));

   

   root.appendChild(sub1);

   

   root.appendChild(new Ext.tree.TreeNode({

        id:"sys",

        text:"系统设置"

   }));

   

   mytree.setRootNode(root);//设置根节点

   

   mytree.render();//不要忘记render()下,不然不显示哦

})

 

效果图

 

3.用TreeLoader加载数据生成树

 
JScript 代码   复制
Ext.onReady(function(){

    Ext.QuickTips.init();

   var mytree=new Ext.tree.TreePanel({

       el:"container",

       animate:true,

       title:"简单Extjs动态树",

       collapsible:true,

       enableDD:true,

       enableDrag:true,

       rootVisible:true,

       autoScroll:true,

       autoHeight:true,

       width:150,

       lines:true,

       //这里简简单单的loader的几行代码是取数据的,很经典哦

       loader:new Ext.tree.TreeLoader({

          dataUrl:"json。ashx"

       })

   });

   

   //根节点

   var root=new Ext.tree.AsyncTreeNode({

       id:"root",

       text:"控制面板",

       expanded:true

   });

   

   mytree.setRootNode(root);

   mytree.render();//不要忘记render()下,不然不显示哦

})

json。ashx代码

 
C# 代码   复制
using System;
using System.Web;
using System.Collections.Generic;
using System.Web.Script.Serialization;
public class jsondata 
{

    //定义jsondata类,存放节点数据

    public string id;

    public string text;

    public bool leaf;

    public List<jsondata> children=new List<jsondata>();//存放子节点

}



public class json : IHttpHandler {

    public List<jsondata> jsdata=new List<jsondata>();

    public void ProcessRequest (HttpContext context) {



        for (int i = 1; i < 5; i++)

        {

            jsondata jd = new jsondata();

            jd.id="num"+i;

            jd.text = "节点"+i;

            jd.leaf = false;

            for (int j = 1; j < 3; j++)

            {

                jsondata subjd = new jsondata();

                subjd.id = "sub" + j;

                subjd.text = "子节点" + j;

                subjd.leaf = true;

                jd.children.Add(subjd);

            }   

            jsdata.Add(jd);

        } 

        context.Response.Write(ToJson(jsdata.ToArray()));//ToArray()在IE里面好像缺了不行

    }

 

    public bool IsReusable {

        get {

            return false;

        }

    }



    public string ToJson(object o)

    {

        //序列化对象为json数据,很重要!

        JavaScriptSerializer j = new JavaScriptSerializer();

        return j.Serialize(o);

    }

}

 效果图

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/742671.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

全球单体容量最大漂浮式风电平台“明阳天成号”正式亮相

7月12日,全球单体容量最大的16.6MW漂浮式风电平台“明阳天成号”启航仪式在中船黄埔文冲造船厂举办,中山市委书记、市人大常委会主任郭文海主礼启航仪式。“明阳天成号”于7月3日完成吊装,经过各项调试准备工作后正式亮相,并将择日拖航至广东阳江海域。据测算,“明阳天成号…

从程序员的角度来看为什么我们需要工作流

每一个程序员,在接触到工作流的时候,都会有这么一个疑问——我用一般的方法可以实现,为什么还要用工作流?我曾经也问过这个问题,不过现在稍微有点明白了。别着急要答案,看过下面的例子,或许你也就明白一些了。这是一个简单的业务——订货流程:客户提交采购订单 业务员执…

003_python3 解释器 注释 运算符

Python3 解释器 1.Linux设置环境变量 $ PATH=$PATH:/usr/local/python3/bin/python3 # 设置环境变量 2.交互式编程 $ python # 启动Python解释器 3.脚本式编程 Windows中写入脚本xx.py文件,执行 python xx.py # cmd 当中直接执行 Linux中文件顶部写入 #! /usr/bin/env py…

2024暑假集训测试4

前言比赛链接这次和高中一起打的,排名一次比一次低了,差点出前一半了…… 主要是 T1 \(dijkstra\) 唐氏复杂度打假了,T2 挂分,T3 没想出来压位,T4 题都没看。 T1 最短路原题:luogu P2966 [USACO09DEC] Cow Toll Paths G。本题考察对 \(Floyed\) 的理解,\(Floyed\) 数组在…

Bootstrap图片样式使用方法

在Bootstrap中自带了几种图片样式,能够让你很快地对其进行使用,这几种样式使用起来相当简单,让我们一起来看看怎么快速调用Bootstrap图片样式。Bootstrap图片圆角样式 在现今的网站建设中,由于扁平化设计的趋势,我们经常会用用到一些CSS3的特性,例如圆角、渐变、阴影等。…

SQL中“ ` ”的作用是什么?

避免和 mysql 的本身的关键字 冲突 所以 用这个符号括起来 虽然有时候不影响 查询 但是最好是要 加上的

《三体开源传》第二章 科技图谱

科技树?汪淼大脑中突然闪过这个概念。哦,不对,应该是科技图谱,图中交织的连线的复杂度已经远远超过树形结构所能描述的单一路径依赖关系,甚至还出现了环形结构和复杂的社群聚集。科技树:科技树是一种结构图,它将技术按照发展顺序排列成树状,展示从基础技术到高级应用的…

Graphrag: Hello World !

这两天抽空玩了一把 Graphrag, 记录一下测试步骤。先决条件: Python 3.10-3.12备注: 以下所有脚本都在 PowerShell环境下运行 1. 首先安装一下 graphrag python包 pip install --trusted-host https://mirrors.huaweicloud.com -i https://mirrors.huaweicloud.com/repository…

R语言软件套保期限GARCH、VAR、OLS回归模型对沪深300金融数据可视化分析

全文链接:https://tecdat.cn/?p=34670 原文出处:拓端数据部落公众号 金融市场的波动性一直是投资者和决策者关注的焦点之一。为了应对市场波动的风险,套保成为了一种重要的金融手段。在这个背景下,使用R语言软件中的GARCH VAR模型对沪深300金融数据进行分析,可以帮助我们更…

【视频讲解】Python比赛LightGBM、XGBoost+GPU和CatBoost预测学生在游戏学习过程表现|数据代码分享

全文链接:https://tecdat.cn/?p=36990原文出处:拓端数据部落公众号分析师:Qi Zhang背景基于游戏进行学习能让学校变得有趣,这种教育方法能让学生在游戏中学习,使其变得有趣和充满活力。尽管基于游戏的学习正在越来越多的教育环境中使用,但能用应用数据科学和学习分析原理…

excel单元格设置为文本为何还要双击

excel单元格设置为文本时为何还要双击才有效? 我选定一行,用右键设置为文本,为何还要单个逐一双击才有效,否则选定求和时(包含其中一个单元格),仍视为数值。而逐一双击太麻烦,怎么解决? 因为这是excel默认设置,如想要不单个操作,可使用分列的方式来批量处理。 具体操…