现在的位置: 首页 > 综合 > 正文

ExtJS专题-TreePanel(1)

2013年02月22日 ⁄ 综合 ⁄ 共 2090字 ⁄ 字号 评论关闭

这次我们来学习下ExtJS中的树面板(TreePanel),很多人都说,只是为了树,都要好好学习ExtJS!可见大家对Tree的一往情深。从另一方面来说,Tree这种结构在实际项目中也的确用得相当广泛,所以我们很有必要研究一下它。这次我们完成的树大致上有这样的功能:它的节点是动态异步从后台(存储在数据库中一张电子产品分类表)加载的,节点之间可以拖曳,节点可以编辑,同时还支持右键菜单,而且,它能够和TabPanel结合构成经典的布局方式。呵呵,是不是很强大?!大家已经看到,我们组件的讲解是逐步递推的,所以我们这里也会用到刚学过的GridPanelTabPanel这些实用的面板。我们看效果先:

 

 

 

好啦,洪哥,我们动手吧!

 

1.      首先还是主要的显示页面tree.html,这里有两个地方要注意一下,一个是我们引用的JS如果采用GBK的默认编码,浏览器会显示未结束的字符串常量的错误,所以我们一般会修改JS文件的编码方式为UTF-8,或者在导入JS时加上编码字符集。第二个是我们要定义一个显示TreePanelDIV

 

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>Insert title here</title>

<link rel="stylesheet" type="text/css" href="resources/css/ext-all.css" />

<script type="text/javascript" src="resources/js/ext-base.js"></script>

<script type="text/javascript" src="resources/js/ext-all.js"></script>

<script type="text/javascript" src="resources/js/tree.js" charset="gbk"></script>

</head>

<body>

<div id="tree-panel" style="overflow:auto; height:300px;width:200px;border:2px solid #c3daf9;"></div>

</body>

</html>

 

2.      然后是我们的主体JS文件,tree.js,为了凸显主题,这个我已经做了必要的简化,还做了详细的注释,大家好好看一下。

 

Ext.onReady(function() {

    Ext.QuickTips.init();// 浮动信息提示

    Ext.BLANK_IMAGE_URL = 'resources/images/default/s.gif';// 替换图片文件地址为本地

 

    // 创建一个简写

    var Tree = Ext.tree;

    // 定义根节点的Loader

    var treeloader = new Tree.TreeLoader({

            // dataUrl : 'tree.jsp'//这里可以不需要指定URL,在加载前事件响应里面设置

            });

 

    // 添加一个树形面板

    var treepanel = new Tree.TreePanel({

        // renderTo:"tree_div",//如果使用renderTo,则不能使用setRootNode()方法,需要在TreePanel中设置root属性。

        el : 'tree-panel',// 将树形添加到一个指定的div,非常重要!

        region : 'west',

        title : '功能菜单',

        width : 200,

        minSize : 180,

        maxSize : 250,

        split : true,

        autoHeight : false,

        frame : true,// 美化界面

        // width : 200,//面板宽度

        // title : '可编辑和拖动的异步树',//标题

        // autoScroll : true, // 自动滚动

        enableDD : true,// 是否支持拖拽效果

        containerScroll : true,// 是否支持滚动条

        rootVisible : true, // 是否隐藏根节点,很多情况下,我们选择隐藏根节点增加美观性

        border : true, // 边框

        animate : true, // 动画效果

        loader : treeloader

            // 树加载

        });

    // 异步加载根节点

抱歉!评论已关闭.