效果图
Js代码
/**
* 程序主入口
*/
Ext.onReady(function() {
/**
* 上,panel.Panel
*/
this.topPanel = Ext.create('Ext.panel.Panel', {
region : 'north',
height : 55
});
/**
* 左,panel.Panel
*/
this.leftPanel = Ext.create('Ext.panel.Panel', {
region : 'west',
title : '导航栏',
width : 230,
layout : 'accordion',
collapsible : true
});
/**
* 右,tab.Panel
*/
this.rightPanel = Ext.create('Ext.tab.Panel', {
region : 'center',
layout : 'fit',
tabWidth : 120,
items : [{
title : '首页'
}]
});
/**
* 组建树
*/
var buildTree = function(json) {
return Ext.create('Ext.tree.Panel', {
rootVisible : false,
border : false,
store : Ext.create('Ext.data.TreeStore', {
root : {
expanded : true,
children : json.children
}
}),
listeners : {
'itemclick' : function(view, record, item,
index, e) {
var id = record.get('id');
var text = record.get('text');
var leaf = record.get('leaf');
if (leaf) {
alert('id-' + id + ',text-' + text
+ ',leaf-' + leaf);
}
},
scope : this
}
});
};
/**
* 加载菜单树
*/
Ext.Ajax.request({
url : 'MenuTreeServlet',
success : function(response) {
var json = Ext.JSON.decode(response.responseText)
Ext.each(json.data, function(el) {
var panel = Ext.create(
'Ext.panel.Panel', {
id : el.id,
title : el.text,
layout : 'fit'
});
panel.add(buildTree(el));
leftPanel.add(panel);
});
},
failure : function(request) {
Ext.MessageBox.show({
title : '操作提示',
msg : "连接服务器失败",
buttons : Ext.MessageBox.OK,
icon : Ext.MessageBox.ERROR
});
},
method : 'post'
});
/**
* Viewport
*/
Ext.create('Ext.container.Viewport', {
layout : 'border',
renderTo : Ext.getBody(),
items : [this.topPanel, this.leftPanel, this.rightPanel]
});
});
后台返回数据
{success:true,data:[{id:1,text:'我的办公桌',leaf:false,children:[{id:3,text:'二级(1)',leaf:true},{id:4,text:'二级(2)',leaf:true},{id:5,text:'二级(3)',leaf:true},{id:6,text:'二级(4)',leaf:false,children:[{id:7,text:'三级(1)',leaf:true},{id:8,text:'三级(2)',leaf:true}]}]},{id:2,text:'系统管理',leaf:false,children:[{id:9,text:'用户管理',leaf:true}]}]}
分享到:
相关推荐
在源码层面,ExtJS 的accordion布局依赖于Ext.layout.container.Accordion类。这个类实现了布局逻辑,包括计算每个面板的高度,处理面板的展开和折叠事件等。开发者可以通过阅读源码深入理解其内部工作原理,以便...
本笔记详尽地探讨了ExtJs4框架的多个核心功能,包括DOM操作、JS语法扩展、Ajax支持、模板系统、按钮、消息对话框、提示、滚轴与进度条控件、面板与窗口、布局管理、选项卡、数据视图、工具栏、分页栏、状态栏、菜单...
### Extjs4 学习指南知识点汇总 #### 1. Extjs初步 ##### 1.1 获取Extjs - **获取途径**:访问官方网站 http://extjs.org.cn/ 下载所需的 Extjs 发布包。 ##### 1.2 搭建学习环境 - **前提条件**:确保计算机上...
9.4.6 手风琴布局:ext.layout.container.accordion / 447 9.4.7 锚固布局:ext.layout.container.anchor / 448 9.4.8 绝对定位布局:ext.layout.container.absolute / 450 9.4.9 边框布局:ext.layout....
13.6.4 Ext.data.XmlReader 13.7 Ext.ux.DWR 13.7.1 Ext.data.DwrProxy 13.7.2 Ext.data.DWRTreeLoader 13.7.4 Web服务端配置 13.7.5 服务层接口 第14章 ExtJS扩展 14.1 利用Ext.extend实现继承 14.2 与...
13.6.4 Ext.data.XmlReader 13.7 Ext.ux.DWR 13.7.1 Ext.data.DwrProxy 13.7.2 Ext.data.DWRTreeLoader 13.7.4 Web服务端配置 13.7.5 服务层接口 第14章 ExtJS扩展 14.1 利用Ext.extend实现继承 14.2 与...
通过设置不同的布局策略,`Ext.Container` 可以实现灵活的界面布局。 #### 四、Panels、Windows 和 TabPanel **4.1 Ext.Panel 程序例子** `Ext.Panel` 是一个非常常用的容器组件,它可以用来封装一组相关的组件,...
- **定义**:`Ext.layout.ContainerLayout` 是 ExtJS 的基础布局类,其他所有布局都基于此基类进行扩展。 - **作用**:当没有为容器指定任何布局时,默认采用 `ContainerLayout`。该布局简单地将所有子元素按顺序...
ExtJS提供多种布局管理器,如AnchorLayout、FormLayout、AbsoluteLayout、FitLayout、AccordionLayout、CardLayout、ColumnLayout、VBoxLayout、HBoxLayout、TableLayout和BorderLayout等。每个布局管理器有其特定的...
### Extjs4学习指南 #### 1. Extjs初步 ##### 1.1 获取Extjs - **下载Extjs**:可以通过官方网站http://extjs.org.cn/获取Extjs的发布包和其他支持资源。 ##### 1.2 搭建学习环境 - **环境准备**:确保已安装...
1. **布局类**:包括容器布局(Container Layout)、绝对定位布局(Absolute Layout)、手风琴布局(Accordion)、锚点布局(Anchor Layout)、边框布局(Border Layout)、卡片布局(Card Layout)、列布局(Column Layout)、...
创建一个简单的`Accordion`布局,你需要创建一个`Ext.container.Container`,并将其`layout`属性设置为`'accordion'`,然后添加多个面板作为子项。例如: ```javascript Ext.create('Ext.container.Viewport', {...
-增加Accordion和Tree配合使用的示例(other\accordion_tree_run.aspx)。 -修正Panel图标不能显示的BUG(CSS中class名不能有$字符)。 +去除PageLayout控件,此控件可以使用BorderLayout和指定PageManager的...
ExtAspNet - ExtJS based ASP.NET Controls with Full AJAX Support ExtAspNet是一组专业的Asp.net控件库,拥有原生的AJAX支持和丰富的UI效果, 目标是创建没有ViewState,没有JavaScript,没有CSS,没有...