读书人

ExtJs格局管理

发布时间: 2012-10-21 09:00:07 作者: rapoo

ExtJs布局管理

所有ExtJs的Layout Class都在API Documentation->Ext->Layout下,如果想用哪种而已方式可以直接查询API帮助文档.我写这篇文章的意思是把学习的时候做的笔记保留下了,为了以后使用方便.

下面列出的是一些常用的Layout.

layout.html页面代码如下:

<!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>ExtJs Layout Example</title><link rel="stylesheet" type="text/css" href="../ext-3.2.0/resources/css/ext-all.css"></link><script type="text/javascript" src="../ext-3.2.0/adapter/ext/ext-base.js"></script><script type="text/javascript" src="../ext-3.2.0/ext-all.js"></script><script type="text/javascript" src="../js/layout.js"></script></head><body>    <div id="columnId"></div>    <div id="borderId"></div>    <div id="fitId"></div>    <div id="accordionId"></div>    <div id="anchorId"></div></body></html>

以下的代码都是放在..js/layout.js文件中的.

1.columnLayout

/*    创建column布局*/function createColumnPanel(){    var obj = {        title : '父面板',        width : 600,        height : 400,        layout : 'column',//一列一列的显示容器中的元素        items : [{            xtype : 'panel',//子元素中默认的显示类型为:panel.也可以根据需要换成button等.            title : '页面1',            columnWidth : 0.5,//以面板整体宽度大小的25%大小进行填充.            height : 200,//高度为固定值.            layout : 'column',            items : [{                xtype : 'button',                text : '按钮1',                columnWidth : 0.5            },{                xtype : 'button',                text : '按钮2',                columnWidth : 0.5            }],            html : '我是面板1'        },{            title : '页面2',            columnWidth : 0.5,            height : 50,            html : '我是面板2'        }]    } ;    //实例化父面板    var mainPanel = new Ext.Panel(obj) ;    //将父面板添加到id为columnId的标签上.    mainPanel.render("columnId") ;}

2.borderLayout

/*    创建border布局*/function createBorderPanel(){    var obj = {        title : '父面板',        width : 600,        height : 400,        layout : 'border',//以东南西北中的方式显示容器中的元素        items : [{            title: 'North Region',            region: 'north',     // 上            height : 50        },{            title: 'South Region',            region: 'south',     // 下            height: 50        },{            title: 'West Region',            region:'west',    // 左            split: true,   //设置可以调整该panel的大小(宽度)            collapsible: true,   //设置该面板是否可以收缩            width: 50        },{            title: 'East Region',            region: 'east',     // 右            width : 50        },{            title: 'Center Region',            region: 'center',     // 中,此面板必须存在.            layout: 'border',             items: [{                title: 'west',                region: 'west',                width: '50%'            },{                title: 'center',                region: 'center',            }]        }]    } ;    //实例化父面板    var mainPanel = new Ext.Panel(obj) ;    //将父面板添加到id为borderId的标签上.    mainPanel.render("borderId") ;}

?3.fitLayout

/*    创建fit布局*/function createFitPanel(){    var obj = {        title : '父面板',        width : 600,        height : 400,        layout : 'fit',//填满整个外部容器,只能看到一个子元素        items : [{            title : '页面1',            html : '我是面板1'        },{            title : '页面2',            html : '我是面板2'        }]    } ;    //实例化父面板    var mainPanel = new Ext.Panel(obj) ;    //将父面板添加到id为columnId的标签上.    mainPanel.render("fitId") ;}

4.accordionLayout

/*    创建accordion布局*/function createAccordionPanel(){    var obj = {        title : '父面板',        width : 600,        height : 400,        layout : 'accordion',//制作应用程度菜单式样式.        items : [{            title : '菜单1',            items : [{                xtype : 'panel',                title : 'a',            }]        },{            title : '菜单2',            items : [{                xtype : 'panel',                title : 'a',            },{                xtype : 'panel',                title : 'b',            }]        }]    } ;    //实例化父面板    var mainPanel = new Ext.Panel(obj) ;    //将父面板添加到id为columnId的标签上.    mainPanel.render("accordionId") ;}

5.anchorLayout

/*    创建anchor布局*/function createAnchorPanel(){    var obj = {        title : '父面板',        width : 600,        height : 400,        layout : 'anchor',// 好处1:可以让子元素的大小根据父元素的大小确定.        items : [{            title : '菜单1',            anchor : '50% 30%'  //利用achor方式布局子元素.            },{            title : 'b',            width : 50,            height : 50        }]    } ;    //实例化父面板    var mainPanel = new Ext.Panel(obj) ;    //将父面板添加到id为columnId的标签上.    mainPanel.render("anchorId") ;}

?

Ext.onReady方法如下:

/*    页面成功载入后会第一个调用此方法*/Ext.onReady(function(){    createColumnPanel() ;//创建column布局    document.getElementById("columnId").style.display = 'none' ;//隐藏column布局    createBorderPanel() ;//创建border布局    document.getElementById("borderId").style.display = 'none' ;//隐藏border布局    createFitPanel() ;//创建fit布局    document.getElementById("fitId").style.display = 'none' ;//隐藏fitId布局    createAccordionPanel() ;//创建accordion布局    document.getElementById("accordionId").style.display = 'none' ;//隐藏accordion布局    createAnchorPanel() ;//创建anchor布局}) ;
?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

读书人网 >JavaScript

热点推荐