[extjs(1)] extjs第一个组件treepanel

刚刚在接触extjs这个前段插件,由于公司是用这个来做前段的,所以有必要花点时间来掌握一下,下面是我自己的非常浅的学习总结,后期会慢慢添加的!!

一、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的基本配置参数:

  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、静态页面

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP ‘main.jsp‘ starting page</title>

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">

<link rel="stylesheet" type="text/css" media="all"href="extjs/resources/css/ext-all.css" />
<script type="text/javascript" src="extjs/ext-base.js"></script>
<script type="text/javascript" src="extjs/ext-all.js"></script>
<script type="text/javascript" language="javascript">

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,
	       height : 300,
	       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",
	        			   id : ‘cccc‘,
	        			   leaf:true
	        			   }
	        		   ]
	        	   }
	           ]
	       })
	   });
	   mytree.render();//不要忘记render()下,不然不显示哦
	});
</script>
</head>
<body>
	<div id="container"></div>//这个要与el里面的对应
</body>
</html>

结果显示  

第二种静态方法

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()下,不然不显示哦
});

结果  

2.动态显示

对于我们来说最重要也就是动态插入了吧。至于前台这边大家都是差不多,后台代码我这里是用java,通过json来接收数据的!只需要把json数据同treepanel属性一一对应就可以了。

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,
       height : 500,
       lines:true,
       //这里简简单单的loader的几行代码是取数据的,很经典哦
       loader:new Ext.tree.TreeLoader({
          dataUrl:"treeAction!syncMenu?date="+new Date()+""
       })
   });

  

后期有新的进展,我会继续添加到此博客的!!!!

				
时间: 2025-01-31 06:40:05

[extjs(1)] extjs第一个组件treepanel的相关文章

【ExtJs】ExtJs的富文本编辑器

对于ExtJs表单中的多行文本框,本身就自带一个没有格式的textareafield. 如果要呈现一个带格式的文本编辑器给用户,ExtJs本身就自带一个htmlEditor. 一.基本目标 比如下图的带编辑器的文本框. 这个组件具有加粗.斜体.下划线,增加减少字号,颜色等功能,而且自动会对文本自动编码,无需担心跨站攻击,只要在后台防范好SQL注入就可以了. 如下图,即使在文本框输入如下网页脚本,也是能够正常运行的. 二.基本思想 首先,这个网页在ExtJs的布局如下,这个组件是由一个含有bbar

【ExtJs】ExtJs的文件上传

ExtJs的文件上传也是采用Ajax的方式,基本上,用户上传之后,其结果马上推回给前台.下面以一个ExtJs图片上传系统,说明这个问题. 一.基本目标 实现如下的一个图片上传的系统,不是基本图片格式,大于1M的图片不给予上传,上传成功显示图片,上传不成功,则显示错误信息. 二.基本思想 这个工程的目录结构如下, 如FileUpload.html的HTML布局所示,js与ext-theme-classic下面皆是Ext的基本资源.然后Upload文件夹用来存放上传的图片,FileUpload.ht

【ExtJs】ExtJs的表单插件与表单布局、提交与验证

利用ExtJs的Anchor可以为ExtJs自带的表单Form各个组件进行布局,当然,使用<[ExtJs]带日期组件的文本输入框.容器与Ext.Msg.alert告警框告警两次>(点击打开链接)中的vbox也是可以的.其实ExtJs的表单插件与表单布局并不是关键,ExtJs的表单验证还好,就几行语句就能够完成.关键是ExtJs的表单提交必须通过Ajax方式,而在后台必须传回一个Json完成表单的提交,可能有点复杂,下面就以php作为ExtJs的后台处理来说明问题ExtJs的表单.aspx,js

【转载】COM 组件设计与应用(五)——用 ATL 写第一个组件

原文:http://vckbase.com/index.php/wv/1215.html 一.前言 1.如果你在使用 vc5.0 及以前的版本,请你升级为 vc6.0 或 vc.net 2003: 2.如果你在使用 vc6.0 (ATL 3.0)请阅读本回内容: 3.如果你在使用 vc.net(ATL 7.0)请阅读下回内容:(当然读读本文内容也不错) 4.这第一个组件,除了所有 COM 组件必须的 IUnknown 接口外,我们再实现一个自己定义的接口 IFun,它有两个函数: Add()完成

【转载】COM 组件设计与应用(六)——用 ATL 写第一个组件

原文:http://vckbase.com/index.php/wv/1216.html 一.前言 1.与 <COM 组件设计与应用(五)>的内容基本一致.但本回讲解的是在 vc.net 2003 下的使用方法,即使你不再使用vc6.0,也请和上一回的内容,参照比对. 2.这第一个组件,除了所有 COM 组件必须的 IUnknown 接口外,我们再实现一个自己定义的接口 IFun,它有两个函数: Add()完成两个数值的加法,Cat()完成两个字符串的连接. 3.下面......好好听讲! 开

Extjs Hello extjs

<html > <head runat="server"> <title></title> <link rel="stylesheet" href="Js/ext-4.2/resources/css/ext-all-neptune.css"/> <script src="Js/jQuery/jquery-1.8.2.min.js" type="text

extjs类继承图之组件

前言 组件类的继承图. 类的继承图 参考 ExtJs组件结构继承图 版权声明:本文为博主原创文章,未经博主允许不得转载.

ExtJS(3)- 自定义组件(星级评分)

今天介绍ExtJS的组件开发,这里以星级评分为示例,首先来看看效果图: 然后是功能操作:鼠标移动到五个星星上面时,会有tooltip显示当前的分值.如图:鼠标悬停在第四颗星星时前四颗星星显示高亮笑脸,当点击下去时锁定笑脸并且设定份数为4. 然后我们来说一下实现原理,Ext的组件基本单元是Ext.Component,所以自定义组件可以继承Component,然后显示部分直接用html来显示,包括css和动态事件都可以直接在html上编辑添加. 接下来我们来看代码: Ext.define('Pact

【ExtJS】各种获取元素组件方法

1.get().getDom().getCmp().getBody().getDoc(): get(id/obj): get方法用来得到一个Ext元素,也就是类型为Ext.Element的对象, Ext.Element类是Ext对DOM的封装,代表DOM的元素,可以为每一个DOM创建一个对应的Element对象,可以通过Element对象 上的方法来实现对DOM指定的操作,比如用hide方法可以隐藏元素.initDD方法可以让指定的DOM具有拖放特性等.get方法其实是Ext.Element.g