- 浏览: 700109 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (239)
- 系统架构设计 (16)
- java collection framework (2)
- java分布式 (4)
- java多线程 (0)
- 故障处理及调优 (16)
- 软件开发过程及管理 (28)
- OS (5)
- 常用算法 (3)
- design pattern (8)
- transaction (7)
- java apps (48)
- corejava (7)
- java and DB (10)
- cache (0)
- webservice (14)
- web前端 (25)
- 报表 (4)
- 日志系统设计 (3)
- Oracle (4)
- mysql (11)
- xml (11)
- 数据源配置管理 (3)
- 企业数据存储 (4)
- php (2)
- 测试 (1)
最新评论
-
orangebook:
对于初学者来说,这样编写可能会误导,理解更烦锁。
观察者模式(发布-订阅) -
liudajiang:
呵呵 startThreads(rand ...
实践缩小Java synchronized 粒度 -
zengwenbo5566:
谢谢博主,学习了
解决getOutputStream() has already been called for this response -
u011335423:
大神厉害啊 可以了
解决getOutputStream() has already been called for this response -
xiang37:
...
解决getOutputStream() has already been called for this response
border布局是常见的布局样式,下面是一个实际项目的示例,比较简单,仅供初学者参考。
前两天遇到一个border布局的界面问题,如下:
west是一个tree a,center是一个tree b和一个Panel,如下图
界面要求:
点击左边树节点【培训项目】,打开右边的界面:包括一个树和一个panel。
功能要求:
点击右边树的节点,班型列表会根据树节点的ID进行查询,并显示相应的查询结果。
问题:
整个界面的右半部分怎样布局?
解决:
左边的tree就不用解释了,是哪里都能找到的样式。这里主要解释下右半部分的布局:
通常情况下,点击树节点,在布局的某个部分(常见的是center位置)打开一个界面的常用方式是:
contentEl : 'center1', html : '<iframe scrolling="auto" frameborder="0" width="100%"height="100%" src="classTypeNew.jsp"></iframe>'
但这种方式不能在目前场景下使用,因为panel要能获得从tree b传递过来的参数,所以上面这种方式是不行的:classTypeNew.jsp无法获得tree b的节点ID。
建议采用如下方式:
1.整体采用border布局。tree a位于west,tree b和Panel位于center。
2.tree b和Panel采用border布局。tree b位于west,Panel位于center。
示例代码:
/** * 班型管理部分 */ var _JwSales = new Ext.Panel({ region : 'center', collapsible:true, items:[_gridStudyClassType,_panelStudyClassTypeInf,_panelStudyClassTypeNodes], listeners:{ "show":function(){ _panelStudyClassTypeInf.getForm().reset(); _sessionStore.load(); var _record = _sessionStore.getAt(0); Ext.getCmp("iStudyClassTypeOprUserName").setValue(_record.get("userName")); Ext.getCmp("iStudyClassTypeOprUserId").setValue(_record.get("userId")); } }, buttons:[ { text:"保存", listeners:{ "click":function(){ var stId = Ext.getCmp("iStudyClassTypeStId").getValue(); if(_panelStudyClassTypeInf.getForm().isValid()) { var arrayInfKey = getArrayStudyClassTypeKey(); var arrayInfValue = getArrayStudyClassTypeValue(); var arrayNodesKey = getStudyTypeNodesKey(); var arrayNodesValue = getStudyTypeNodesValue(); if(stId == "") { //添加 MSClassType.isDo4Add(Ext.getCmp("iItemCombo").getValue(), "stName", Ext.getCmp("iStudyClassTypeStName").getValue(), function addRtn(rtn) { if(rtn == "true") { MSClassType.createEntity( arrayInfKey,arrayInfValue, arrayNodesKey,arrayNodesValue, function createEntityRtn(rtnCreate){ if(rtnCreate == "success") { Ext.MessageBox.alert("信息提示","添加成功,点击返回!"); _storeStudyClassType.load({params:{start:0,limit:6}}); Ext.MessageBox.alert("信息提示","添加成功,点击返回!"); addHandler(); } else { Ext.MessageBox.alert("信息提示","添加失败,请与系统管理员联系!"); } } ); } else Ext.getCmp("iStudyClassTypeStName").markInvalid("已经存在的班型名称"); } ); } else { if(Ext.getCmp("iStudyClassTypeStatus").getValue() != "1") { Ext.MessageBox.alert("信息提示","已经提交或删除,无法修改!"); return ; } /* * arrayTextbooksKey,arrayTextbooksValue, arrayEmsKey,arrayEmsValue, arrayGiftsKey,arrayGiftsValue, arrayPsKey,arrayPsValue, * */ //修改 MSClassType.isDo4Edit(Ext.getCmp("iItemCombo").getValue(),stId, "stName", Ext.getCmp("iStudyClassTypeStName").getValue(), function editRtn(rtn) { if(rtn == "true") { MSClassType.updateEntity( stId,arrayInfKey,arrayInfValue, arrayNodesKey,arrayNodesValue, function updateEntityRtn(rtnUpdate){ if(rtnUpdate == "success") { Ext.MessageBox.alert("信息提示","更新成功,点击返回!"); _storeStudyClassType.load({params:{start:0,limit:9}}); Ext.MessageBox.alert("信息提示","更新成功,点击返回!"); } else { Ext.MessageBox.alert("信息提示","更新失败,请与系统管理员联系!"); } } ); } else Ext.getCmp("iStudyClassTypeStName").markInvalid("已经存在的班型名称"); } ); } } } } }, { text:"提交", handler:submitHandler }, { text:"清空", handler:addHandler } ] }); var _treeItem = new Ext.tree.TreePanel({ title : '导航栏', region : 'west', split : true, border : true, bodyStyle: 'background-color:#FFFFFF', collapsible : true, autoScroll : true, width : 180, minSize : 180, maxSize : 280, enableDD : true, el:"_treeItemDiv", id:"_treeItem", loader : new Ext.tree.TreeLoader({dataUrl :'itemData.jsp'}), listeners:{ 'dblclick':function(node,e){ var subjectID = node.attributes.id;//科目ID alert("科目ID = "+ subjectID); _storeStudyClassType.removeAll(); _storeStudyClassType.load({params:{start:0,limit:20,subjectID:node.attributes.id}}); }, "contextmenu":function(node,e){ if(node.attributes.id == "0") { var nodemenu=new Ext.menu.Menu({ items:[ { text:"添加项目", iconCls:'icon-table-add', handler:function(){ _winBaseItemOpr.setTitle("项目管理-添加"); _winBaseItemOpr.show(); _panelBaseItemOpr.getForm().reset(); Ext.getCmp("iStudyBaseItemSuperiorItemId").setValue(node.attributes.id); Ext.getCmp("iStudyBaseItemShowIndex").setValue(node.childNodes.length+1); } } ] }); nodemenu.showAt(e.getPoint()); } else { var nodemenu=new Ext.menu.Menu({ items:[ { text:"删除项目", iconCls:'icon-minus', handler:function(){ } },{ text:"修改项目", iconCls:'icon-table-edit', handler:function(){ _winBaseItemOpr.setTitle("项目管理-浏览"); _winBaseItemOpr.show(); _panelBaseItemOpr.getForm().reset(); Ext.getCmp("iStudyBaseItemItemId").setValue(node.attributes.id); Ext.getCmp("iStudyBaseItemItemName").setValue(node.attributes.text); Ext.getCmp("iStudyBaseItemSuperiorItemId").setValue(node.attributes.superiorItemId); Ext.getCmp("iStudyBaseItemShowIndex").setValue(node.attributes.showIndex); Ext.getCmp("iStudyBaseItemInf").setValue(node.attributes.inf); } }] }); nodemenu.showAt(e.getPoint()); } } } }); var _rootItem = new Ext.tree.AsyncTreeNode({text:"尚德教育在线",id:"0"}); _treeItem.setRootNode(_rootItem); var _panelOrg = new Ext.form.FormPanel({ collapsible:true, frame:true, width:bodyWidth, height:bodyHeight, items:[_treeItem], autoScroll:true }); _panelOrg.render("_panelItemDiv"); _rootItem.reload(); /** * 生成一个ViewPort,采用Border布局,保留天地栏,左中栏 */ var viewport = new Ext.Viewport({ layout : 'border', items : [_treeItem, _JwSales] });
发表评论
-
div的显示与隐藏
2013-06-19 16:49 1044今天做个小功能(2009-3-6):将取得的数据显示在一js ... -
学习网页标准的5个步骤
2013-06-18 18:57 939我想每一个刚刚接触web标准的人都会问这样的问题,我就 ... -
request.getContextPath()详解
2013-06-18 18:56 949<%=request.getContextPath( ... -
MIMIE类型大全
2013-06-18 18:55 1029获取MIME:HttpContext.Current.Re ... -
js操作Dom生成动态表格
2010-07-15 17:19 1467项目中有个js的功能需求: 数据库表中有两个字段记录数据的两 ... -
eclipse+ext+spket安装
2010-07-07 16:25 1926参考网上相关文章,经过多次尝试才搞定这几个组合的安装,比较繁琐 ... -
Ajax简介
2010-06-30 15:14 9051、ajax技术的背景 ... -
js取服务器端时间,并提供动态下载链接
2010-06-30 14:57 2863最近项目中有这样一个需求: 页面动态刷新获取数据库中符合条件 ... -
用js进行正负小数及范围判断
2010-06-30 14:56 2191最近项目中遇到一个js判断:允许输入正负数、小数,并且输入值有 ... -
js时间比较(yyyymmdd)
2010-06-30 14:54 2920yyyymmdd格式时间比较实例,参考如下代码: & ... -
ajax的两种常用调用方式
2010-06-30 14:51 982方式1: //请求js <script langua ... -
XMLHttpRequest参数提交方式
2010-06-30 14:49 3696一般情况下,使用Ajax提交的参数多是些简单的字符串,可以直接 ... -
html页面联动菜单常用处理方式
2010-06-30 14:47 1359html页面联动菜单比较常见,一般情况下,点击一个radio或 ... -
js获取HTML DOM节点元素方法总结
2010-06-30 14:42 1438在Web应用程序特别是Web2 ... -
extJS-itemselector的使用
2009-11-24 16:38 8345上图是富客户端界面中常用的选择方式,下面是项目中的一段示 ... -
extJS-动态改变baseParams
2009-10-12 22:18 9831项目中遇到一个问题:双击导航栏树节点,根据该树节点的属性ID在 ... -
客户端显示Store-Ext.data-Store
2009-09-04 20:38 2184store是一个为Ext器件提供record对象的存储容器,行 ... -
客户端记录显示缓存的刷新-ExtJS
2009-09-04 20:31 2089其实这是个非常简单的问题,仅供ExtJS初学者参考。 ... -
ExtJS分页条件参数传递
2009-08-19 10:30 5537这两天还在忙活那个可恨的ext的项目,说它可恨,通过解决这个小 ... -
EXTJS 查询数据,分页显示时传送自定义参数,添加控件的任何事件模板
2009-08-19 10:08 3212var querytext = new Ext.form.Te ...
相关推荐
资源名称:ExtJS布局之border实例 中文WORD版内容简介:border布局是常见的布局样式,本文档中一个实际项目的示例,比较简单,仅供初学者参考。感兴趣的朋友可以过来看看资源截图: 资源太大,传百度网盘了,链接在...
ExtJs常用布局--layout详解实例代码: ExtJs常见的布局方式有:border、form、absolute、column、accordion、table、fit、card、anchor 另外,不常见的布局有:tab、vbox、hbox 具体使用方法可见该文件的案例代码。 ...
第十讲.ExtJS布局模式-Column、Table、Border 第十一讲.ExtJS布局模式-Box布局、使用ViewPort布局首页 第十二讲.ExtJS之Ext常用函数 第十三讲.ExtJS之Ext常用函数(二) 第十四讲.初识Ajax 第十五讲.ExtJS对...
### ExtJS布局管理学习指南 #### 一、引言 ExtJS是一款强大的JavaScript框架,用于构建复杂的前端应用程序。其中布局管理是ExtJS的核心特性之一,它可以帮助开发者有效地组织UI组件,使得用户界面既美观又实用。...
以下是关于ExtJS布局的详细解释: 1. **基本知识:布局操作** - 布局操作涉及容器组件内的子元素组件如何组织和分布。 - 布局的基类是`Ext.layout.ContainerLayout`,它提供了所有布局的基础功能,但本身并不具有...
在样式和布局方面,EXTJS提供了灵活的布局管理器,如Fit布局、Border布局等,可以轻松地适应各种屏幕尺寸。结合ASP.NET的CSS样式控制,可以创建出响应式的设计,满足不同设备的访问需求。 总结来说,"asp.net下...
2. **布局管理**:ExtJS提供了多种布局方式,如Fit布局、Border布局、Form布局、Table布局等,可以灵活地调整组件在容器中的排列和尺寸。 3. **数据绑定**:ExtJS的数据绑定机制允许将UI组件与后台数据源直接关联,...
例如,`Ext.Panel`用于创建可配置的容器,可以包含其他组件,并支持各种布局(如fit布局、border布局、form布局等)。 数据绑定是ExtJS的一个核心特性,它使得视图和数据模型之间可以实现自动同步。数据源可以是...
### ExtJS 实践大量实例讲解 #### 概述 ExtJS 是一款用于构建现代 Web 应用的强大框架,它提供了一系列丰富的 UI 组件、数据处理功能以及与后端交互的能力。本文将通过大量的实例来讲解如何使用 ExtJS 来开发高...
同时,EXTJS4的布局管理器也更加强大,支持多种布局模式,如fit、border、form等,适应各种页面设计需求。 Guice是Google贡献给开源社区的一个依赖注入框架,它简化了Java对象的生命周期管理。通过使用Guice,...
1. **布局**:ExtJS4提供了多种布局方式,如Fit布局、Border布局、Column布局等,用于合理安排组件的位置和大小。Web桌面一般会使用Border布局,以模拟桌面的四周边界。 2. **桌面图标**:通过ExtJS的Button或Image...
### Extjs FieldSet 两行两列布局解析 在Extjs框架中,`FieldSet`是一种常见的组件,常用于组织一组相关的表单字段,并通过一个标题来标识这组字段的主题。本文将详细介绍如何使用Extjs实现一个两行两列布局的`...
在这个实例中,我们看到在名为“west”(通常代表左侧)的区域,使用了折叠布局。这个区域的组件是`leftPanel`,它包含了一个`Ext.panel.Panel`,并且配置了`layout: 'accordion'`,表示这是一个折叠面板。折叠布局...
ExtJS提供了多种布局策略,如边框布局(Border Layout)、卡片布局(Card Layout)等,方便开发者灵活安排页面元素的显示方式。 ### 1.4 ExtJS的开发环境与工具 ExtJS的开发不仅依赖于良好的编码习惯,还需要一...
常见的布局类型有:fit布局(完全填充父容器)、border布局(类似CSS的边框布局)、form布局(用于表单元素)等。 4. **Store与Model**: Store是数据存储的容器,可以与远程服务器进行数据交换,而Model定义了数据...
本文将深入探讨两种ExtJS 4中的布局方式:Accordion布局和Border布局。 首先,我们来看Accordion布局。Accordion布局,又称为手风琴布局,它的特点是只有一个面板处于展开状态,其余面板均折叠。这种布局适用于展示...
在ExtJS中,表单布局(Form Layout)是构建用户界面的重要组成部分,它允许开发者将各种表单元素如文本字段、组合框、复选框等...对于初学者来说,这是一个很好的起点,可以从中学习到ExtJS布局和表单设计的基本概念。