欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    EXTJS UI布局.ppt

    • 资源ID:2934202       资源大小:342KB        全文页数:35页
    • 资源格式: PPT        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    EXTJS UI布局.ppt

    ExtJs UI 布局,我们先通过一个代码,来看看传统的布局是什么样子的 var viewport=new Ext.Viewport(layout:border,items:region:north,height:40,html:,region:west,width:100,html:菜单1菜单2,region:center,html:主要内容);,布局的基本用途,常见布局模式,FitLayoutBorderLayoutAccordionCardLayoutFormLayoutColumnLayoutTableLayoutAnchorLayout与AbsoluteLayout,FitLayout,我们先将前面用的grid加入的viewport中,看看页面变化时,表格是否也能随着变化,var store=new Ext.data.SimpleStore(fields:id,name,desc,data:1,name1,desc1,2,name2,desc2,3,name3,desc3,4,name4,desc4,5,name5,desc5,6,name6,desc6,7,name7,desc7,8,name8,desc8,9,name9,desc9,10,name10,desc10);var grid=new Ext.grid.GridPanel(title:grid,viewConfig:forceFit:true,store:store,columns:header:id,dataIndex:id,header:名称,dataIndex:name,header:描述,dataIndex:desc,tbar:new Ext.Toolbar(添加,修改,删除),bbar:new Ext.PagingToolbar(pageSize:15,store:store);var viewport=new Ext.Viewport(layout:fit,items:grid);,注意:使用了layout:fit组件的items只能放一个组件。即使放多个组件,也只能显示第一个组件。items:title:panel,html:panel,grid,另外,items中的表格切忌不能设置autoHeight:true参数,因为这样会是FitLayout失效。它会重新计算表格高度,最后使得表格无法填充整个页面。当然,我们也可以把表格移植会window中 var win=new Ext.Window(width:400,height:300,layout:fit,items:grid);win.show();,因为FitLayout布局每次只能使用一个子组件,无法胜任比较复杂的布局任务,所以实际工作中我们使用的最多的是Borderlayout。它将整个布局分为东、西南、北、中五个部分。除了中间部分,其它部分都可以省略。,BorderLayout,var viewport=new Ext.Viewport(layout:border,items:region:north,html:north,region:south,html:south,region:east,html:east,region:west,html:west,region:center,html:center);再次提醒,region:center不可或缺,如果没有程序会出错,这里面的子区域就是设置north、south、west、east四个区域。不包括中间部分center,因为中间部分的面积是根据其它部分计算出来的。其中north、south只能设置高度(height),west、east只能设置宽度(width)。var viewport=new Ext.Viewport(layout:border,items:region:north,html:north,height:120,region:south,html:south,height:30,region:east,html:east,width:40,region:west,html:west,width:100,region:center,html:center);,如果,我们在上面代码中,给相关子区域使用了autoHeight。因为所有原来的borderlayout中的子组件都是自动延伸,那么我们刚才设置的各个区域的宽和高都将失效。,Split的使用,使用split就允许用户自行拖动某一个区域的大小。var viewport=new Ext.Viewport(layout:border,items:region:north,html:north,region:west,html:west,width:100,split:true,region:center,html:center);需要注意的是,north、south只能上下拖动,west、east只能左右拖动。,有的时候,不能完全信任用户的输入,他们的一些动作会使得页面的布局完全变得混乱,那么我们可以限制他们的拖动范围var viewport=new Ext.Viewport(layout:border,items:region:north,html:north,region:west,html:west,width:100,split:true,minSize:80,maxSize:120,region:center,html:center);,区域的展开和折叠,var viewport=new Ext.Viewport(layout:border,items:region:north,html:north,region:west,html:west,title:west,width:100,collapsible:true,region:center,html:center);我们看到设置了collapsible:true,其中west的title参数也要进行设置,因为折叠按钮是出现在标题部分的,如果没有为west区域设置title那么折叠按钮也就无法显示了。,实现折叠分组,类似QQ的效果var viewport=new Ext.Viewport(layout:border,items:region:west,width:200,layout:accordion,layoutConfig:titleCollapse:true,animate:true,activeOnTop:false,items:title:第一栏,html:第一栏,title:第二栏,html:第二栏,title:第三栏,html:第三栏,region:center,split:true,border:true);,Accordion,布局的相关配置都在layoutConfig中,其中:titleCollapse:默认为true,单据标题就可以折叠子面板了。Animate:展开和折叠是是否使用动画效果activeOnTop:执行展开和折叠操作后,子面板的顺序是否会改变,Cardlayout 可以看做事一叠的卡片,每次只能看到一张卡片。var navHandler=function(direction)var wizard=Ext.getCmp(wizard).layout;var prev=Ext.getCmp(move-prev);var next=Ext.getCmp(move-next);var activeId=wizard.activeItem.id;if(activeId=card-0)if(direction=1)wizard.setActiveItem(1);prev.setDisabled(false);else if(activeId=card-1)if(direction=-1)wizard.setActiveItem(0);prev.setDisabled(true);else wizard.setActiveItem(2);next.setDisabled(true);else if(activeId=card-2)if(direction=-1)wizard.setActiveItem(1);next.setDisabled(false);,Cardlayout,var viewport=new Ext.Viewport(layout:border,items:region:west,id:wizard,width:200,title:某某向导,layout:card,activeItem:0,bodyStyle:padding:15px,defaults:border:false,bbar:id:move-prev,text:上一步,handler:navHandler.createDelegate(this,-1),disabled:true,-,id:move-next,text:下一步,handler:navHandler.createDelegate(this,1),items:id:card-0,html:哈哈!欢迎用咱的向导。第一步,一共三步,id:card-1,html:第二步,一共三步,id:card-2,html:恭喜恭喜,完成了。第三步,一共三步,最后一步了。,region:center,split:true,border:true);,控制位置和大小的布局,Anchorlayout 提供了灵活的布局方式第一种使用百分比进行配置 var viewport=new Ext.Viewport(layout:anchor,items:title:panel 1,html:panel 1,anchor:50%50%,title:panel 2,html:panel 2,anchor:80%);,第二种,直接配置与右侧和底部的边距。var viewport=new Ext.Viewport(layout:anchor,items:title:panel 1,html:panel 1,anchor:-50-200/右侧、底部的距离,title:panel 2,html:panel 2,anchor:-100);,第三种:side,使用它的前提是作为布局的整体的父组件和布局内部的子组件都设置好了width、height和anchorsize属性。var viewport=new Ext.Viewport(layout:anchor,anchorSize:width:400,height:300,items:title:panel 1,html:panel 1,width:200,height:100,anchor:r b,title:panel 2,html:panel 2,width:100,height:200,anchor:r b);,Anchorlayout组合配置,var viewport=new Ext.Viewport(layout:anchor,items:title:panel 1,html:panel 1,anchor:-100 40%,title:panel 2,html:panel 2,anchor:-200 60%);,absolutelayout,Anchorlayout布局中的子组件都是自上而下排列的,我们不能控制每个组件的位置。Absolutelayout通过绝对定位,来为我们解决这些问题。var viewport=new Ext.Viewport(layout:absolute,items:title:panel 1,html:panel 1,x:50,y:0,anchor:-200 40%,title:panel 2,html:panel 2,x:200,y:10,anchor:-50 60%);,FormLayout,其实FormLayout也是AnchorLayout的一个子类,可以在它里面使用anchor设置的宽、高的比例。不过,它主要还是对表单进行布局。我们前面讲过的FormPanel使用它作为默认的布局方式,,var viewport=new Ext.Viewport(layout:fit,items:xtype:form,title:信息,labelAlign:right,labelWidth:50,frame:true,defaultType:textfield,items:fieldLabel:名称,name:name,anchor:90%,fieldLabel:生日,name:birthday,xtype:datefield,anchor:90%,fieldLabel:备注,name:desc,xtype:textarea,anchor:90%-100);,分列式布局ColumnLayout,var viewport=new Ext.Viewport(layout:column,items:title:Column 1,columnWidth:.25,title:Column 2,columnWidth:.4,title:Column 3,columnWidth:.35);,var viewport=new Ext.Viewport(layout:column,items:title:Column 1,width:120,title:Column 2,columnWidth:.7,title:Column 3,columnWidth:.3);使用columnWidth来平分剩余部分的宽度,TableLayout,var viewport=new Ext.Viewport(layout:fit,items:title:Table Layout,layout:table,defaults:bodyStyle:padding:20px,layoutConfig:columns:3,items:html:Cell A content,rowspan:2,html:Cell B content,colspan:2,html:Cell C content,html:Cell D content);,使用viewport对整个页面布局,var viewport=new Ext.Viewport(layout:border,items:region:north,height:40,html:,region:west,width:100,html:菜单1菜单2,region:center,xtype:viewport,html:主要内容);通过这个代码,我们发现viewport的冲突问题,在外部已经使用了viewport而在内部又定义了viewport,造成两者出现冲突,布局失败。,实现复杂布局,/表格配置开始 var cm=new Ext.grid.ColumnModel(header:编号,dataIndex:id,header:名称,dataIndex:name,header:描述,dataIndex:descn);var data=1,name1,descn1,2,name2,descn2,3,name3,descn3,4,name4,descn4,5,name5,descn5;var ds=new Ext.data.Store(proxy:new Ext.data.MemoryProxy(data),reader:new Ext.data.ArrayReader(,name:id,name:name,name:descn);ds.load();var grid=new Ext.grid.GridPanel(ds:ds,cm:cm,title:center-north,region:north);/表格配置结束,/树形配置开始 var tree=new Ext.tree.TreePanel(loader:new Ext.tree.TreeLoader(dataUrl:tree.txt),title:west,region:west,split:true,border:true,collapsible:true,width:120,minSize:80,maxSize:200);var root=new Ext.tree.AsyncTreeNode(text:偶是根);tree.setRootNode(root);root.expand();/树形配置结束,text:01,children:text:01-01,leaf:true,text:01-02,children:text:01-02-01,leaf:true,text:01-02-02,leaf:true,text:01-03,leaf:true,text:02,leaf:true,/表单配置开始 var form=new Ext.form.FormPanel(defaultType:textfield,labelAlign:right,title:form,labelWidth:50,frame:true,width:220,title:center-center,region:center,items:fieldLabel:文本框,anchor:90%,buttons:text:按钮);/表单配置结束,/布局开始 var viewport=new Ext.Viewport(layout:border,items:region:north,contentEl:north-div,height:80,bodyStyle:background-color:#BBCCEE;,region:south,contentEl:south-div,height:20,bodyStyle:background-color:#BBCCEE;,tree,region:center,split:true,border:true,layout:border,items:grid,form);/布局结束,标题栏:viewport加panel实现复杂布局 状态栏:Copyright by,

    注意事项

    本文(EXTJS UI布局.ppt)为本站会员(laozhun)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开