在html的页面里的代码:
<div id="combotree" style="float:left;display:block;">
<!--先隐藏此树形-->
<div id="divmodule" style="float:left;display:none;position: absolute;"></div>
<!--点击文本框的时候,显示树形结构 -->
<input type="text" id="input_module" name="input_module" readonly onclick="document.getElementById('divmodule').style.display='block'">
<!-- 这个hidden用来向后台传数据 -->
<input type="hidden" id="tomodule" name="tomodule">
</div>
下面是EXT 部分,
此部分代码放在 Ext.onReady(function(){ }); 里
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 : 'divmodule',// 将树形添加到一个指定的div中,非常重要!
region : 'west',
title : '功能模块',
width : 200,//面板宽度
minSize : 180,
maxSize : 250,
split : true,
autoHeight : false,
frame : true,// 美化界面
// title : '可编辑和拖动的异步树',//标题
// autoScroll : true, // 自动滚动
enableDD : true,// 是否支持拖拽效果
containerScroll : true,// 是否支持滚动条
rootVisible : true, // 是否隐藏根节点,很多情况下,我们选择隐藏根节点增加美观性
border : true, // 边框
animate : true, // 动画效果
loader : _treeloader // 树加载
});
// 异步加载根节点
var _rootnode = new _Tree.AsyncTreeNode({
id : '0',
text : '请选择...',
draggable : false,// 根节点不容许拖动
expanded : true
});
// 为tree设置根节点
_treepanel.setRootNode(_rootnode);
// 响应加载前事件,传递node参数
_treepanel.on('beforeload', function(node) {
_treepanel.loader.dataUrl = 'getModuleList_dao.asp?id=' + node.id; // 定义子节点的Loader
});
_treepanel.on("append", function(a,b,node) {
//根据实际情况来判定叶子节点
//alert(node.getDepth());
if (node.getDepth()==3)
{
node.leaf=true;
}else{
node.leaf=false;
}
});
// 渲染树形
_treepanel.render();
// 展开节点,第一个参数表示是否级联展开子节点
_rootnode.expand(false);
//属性的点击时间
_treepanel.on('click', function(node,e){
if (!node.isLeaf()) { //不是叶子节点,就stop
e.stopEvent();
}else{
document.getElementById("divmodule").style.display="none"; //隐藏树形结构的div
document.getElementById("input_module").value=node.text; //将选中的节点的显示的值赋予文本框
document.getElementById("tomodule").value=node.id;//用hidden保存实际节点的id值
}
});
loader.dataurl 去获取需要的数据,本次实验中,用json格式的记录数据,数据格式:
[{id:"1",text:"AAA"},{id:"2",text:"BBB"}]
到此结束。如果有不懂地方可以参考:
http://youshini.iteye.com/blog/1072961
分享到:
相关推荐
里面已经包含了教程、示例代码、要用到的js脚本库和jar包,你随便改改就可以用在自己的项目里
学习TreePanel时根据网上的资料自己实现的实例,结构如下: 1. 创建一棵树 2. 使用TreeLoader加载数据生成树 3. 读取本地Json数据生成树 4. 使用Servlet提供数据 5. 树的事件 6. 右键菜单 7. 修改节点的默认图标 8. ...
ext js mvc 基本布局 以及菜单栏的点击事件 也是初学者 。
主要介绍了Extjs 中 Treepanel 实现菜单级联选中效果,需要的朋友可以参考下
目录 1. ExtJs2.0学习系列(1)--Ext.MessageBox 2. ExtJs2.0学习系列(2)--Ext.Panel 3. ExtJs2.0学习系列(3)--...14. ExtJs2.0学习系列(14)--Ext.TreePanel之第三式(可增删改的树) 15. ExtJs2.0学习系列(15)--extjs换肤
menuTree:new Ext.tree.TreePanel({ title:'功能菜单', region:'west', bodyStyle:'background:transparent url(images/default/panel/group-lr.gif) repeat-x 0 bottom;', id:'extExample-tree', autoScroll:true, ...
一种节点是普通的简单树 节点,由Ext.tree.TreeNode定义,另外一种是需要异步加载子节点信息的树节点,该类由Ext.tree.AsyncTreeNode定 义。 在数据中, text 显示文字, leaf 节点 , children 子节点,expanded ...
《精通JS脚本之ExtJS框架》附有配套光盘,提供了书中实例的源代码和视频教学文件。此外,读者还可以通过访问itzcn网站来获得即时在线帮助。 《精通JS脚本之ExtJS框架》可以作为Web开发的自学参考书,也可以作为...
因为前段时间有两个专案要用到extjs技术,所以自己学了一段...grid,tree,显示树信息的TreePanel、用于显示表格的GridPanel及EditorGridPanel,还有代表应用程序窗口的Ext.Window,与数据库交付,希望对初学者带来帮助
5、通过自定义一个Ext.button.Button的扩展类,演示了自定义扩展Ext类的基本方法; 6、使用JSON,模拟从后台动态获取数据; 7.放入webapp运行tomcat,,直接访问index.html即可访问,其他语言相同
引用ExtJS5.0 实现一个树形菜单的后台管理demo
《精通JS脚本之ExtJS框架》附有配套光盘,提供了书中实例的源代码和视频教学文件。此外,读者还可以通过访问itzcn网站来获得即时在线帮助。 《精通JS脚本之ExtJS框架》可以作为Web开发的自学参考书,也可以作为...
Extjs4 TreePanel实例 ExtJs4 动态加载 Extjs4 带复选框的树(Checkbox tree) Extjs4 新的布局方式 Extjs4 锁定表头(Locking Grid)功能 Extjs4.0 MVC实例 Extjs4.0动态填充combobox数据 Extjs4中up()和down()的用法...
该文档中包含两个入门实例配有截图,详细介绍了Sencha Architect 2.2 的使用方法,其中包括treePanel,和数据绑定的使用,还有图形绘制。