第七讲:ViewPort和TabPanel

ViewPort代表整个浏览器显示区域,该对象渲染到页面的body区域,并会随着浏览器显示区域的大小自动改变,一个页面中只能有一个ViewPort实例。

示例一:显示单个Panel

Ext.onReady(function(){

new Ext.Viewport({

title : 'ViewPort',

layout:"fit",

items: [

{

title:"panel"

}

]

});

});

示例二:使用Accordion布局。

Ext.onReady(function(){

new Ext.Viewport({

title : 'ViewPort',

layout:'accordion',

items: [

{

title:"panel1",

html:"panel1文本内容"

},

{

title:"panel2",

html:"panel2文本内容"

}

]

});

});

示例三:使用border布局。

Ext.onReady(function(){

new Ext.Viewport({

title : 'ViewPort',

layout:'border',//表格布局

items: [

{

title: 'north Panel',

html : '上边',

region: 'north',//指定子面板所在区域为north

height: 100

},{

title: 'West Panel',

html : '左边',

region:'west',//指定子面板所在区域为west

width: 150

},{

title: 'Main Content',

html : '中间',

region:'center'//指定子面板所在区域为center

}]

});

});

选项面板TabPanel。

示例一:

Ext.onReady(function(){

var tabPanel = new Ext.TabPanel({

height : 150,

width : 300,

activeTab : 0,//默认激活第一个tab页

animScroll : true,//使用动画滚动效果

enableTabScroll : true,//tab标签超宽时自动出现滚动按钮

applyTo:'hello',

items: [

{title: 'tab标签页1',html : 'tab标签页1内容'},

{title: 'tab标签页2',html : 'tab标签页2内容'},

{title: 'tab标签页3',html : 'tab标签页3内容'},

{title: 'tab标签页4',html : 'tab标签页4内容'},

{title: 'tab标签页5',html : 'tab标签页5内容'}

]

});

});

示例二:转换div为选项页

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >

  <head>

    <title>TestPanel</title>

    <script type="text/javascript" src="../Ext/adapter/ext/ext-base.js"></script>

    <script type="text/javascript" src="../Ext/ext-all-debug.js"></script>

    <script type="text/javascript" src="TabPanel4.js"></script>

    <link rel="stylesheet" type="text/css" href="../Ext/resources/css/ext-all.css"></link>

  </head>

  <body>

  <div id="hello">

   <div class='x-hide-display' title='tab标签页1' id="div1">tab标签页1内容</div>

<div class='x-hide-display' title='tab标签页2' id="div2">tab标签页2内容</div>

<div class='x-hide-display' title='tab标签页3' id="div3">tab标签页3内容</div>

<div class='x-hide-display' title='tab标签页4' id="div4">tab标签页4内容</div>

  </div>

  

  <div class='x-hide-display' title='tab标签页5' id="div5">tab标签页5内容</div>

  </body>

</html>

 

Ext.onReady(function(){

var tabPanel = new Ext.TabPanel({

height : 150,

width : 300,

activeTab : 0,//默认激活第一个tab页

animScroll : true,//使用动画滚动效果

enableTabScroll : true,//tab标签超宽时自动出现滚动按钮

applyTo:'hello',

items: [

{title: 'div1内容',contentEl:"div1"},

{title: 'div2内容',contentEl:"div2"},

{title: 'div3内容',contentEl:"div3"},

{title: 'div4内容',contentEl:"div4"},

{title: 'div5内容',contentEl:"div5"}

]

});

});

示例三:自动转换div为选项页

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >

  <head>

    <title>TestPanel</title>

    <script type="text/javascript" src="../Ext/adapter/ext/ext-base.js"></script>

    <script type="text/javascript" src="../Ext/ext-all-debug.js"></script>

    <script type="text/javascript" src="TabPanel2.js"></script>

    <link rel="stylesheet" type="text/css" href="../Ext/resources/css/ext-all.css"></link>

  </head>

  <body>

  <div id="hello">

   <div class='x-tab' title='tab标签页1'>tab标签页1内容</div>

<div class='x-tab' title='tab标签页2'>tab标签页2内容</div>

<div class='x-tab' title='tab标签页3'>tab标签页3内容</div>

<div class='x-tab' title='tab标签页4'>tab标签页4内容</div>

  </div>

  

  <div class='x-tab' title='tab标签页5'>tab标签页5内容</div>

  </body>

</html>

 

Ext.onReady(function(){

var tabPanel = new Ext.TabPanel({

height : 150,

width : 300,

autoTabs : true,//自动扫描页面中的div然后将其转换为标签页

deferredRender : false,//不进行延时渲染

activeTab : 0,//默认激活第一个tab页

animScroll : true,//使用动画滚动效果

enableTabScroll : true,//tab标签超宽时自动出现滚动按钮

applyTo:'hello'

});

});

示例四:动态添加选项页

Ext.onReady(function(){

var tabPanel = new Ext.TabPanel({

height : 350,

width : 400,

activeTab : 0,//默认激活第一个tab页

animScroll : true,//使用动画滚动效果

enableTabScroll : true,//tab标签超宽时自动出现滚动按钮

applyTo:'hello',

items: [

{title: 'tab标签页1',html : 'tab标签页1内容'},

{title: 'tab标签页2',html : 'tab标签页2内容'},

{title: 'tab标签页3',html : 'tab标签页3内容'},

{title: 'tab标签页4',html : 'tab标签页4内容'},

{title: 'tab标签页5',html : 'tab标签页5内容'}

],

buttons : [

{

text : '添加标签页',

handler : addTabPage

}

]

});

function addTabPage(){

var index = tabPanel.items.length + 1;

var tabPage = tabPanel.add({//动态添加tab页

title: 'tab标签页'+index,

html : 'tab标签页'+index+'内容',

closable : true//允许关闭

})

tabPanel.setActiveTab(tabPage);//设置当前tab页

}

});

示例五:为标签页添加右键菜单

Ext.onReady(function(){

var tabPanel = new Ext.TabPanel({

height : 350,

width : 400,

activeTab : 0,//默认激活第一个tab页

animScroll : true,//使用动画滚动效果

enableTabScroll : true,//tab标签超宽时自动出现滚动按钮

applyTo:'hello',

items: [

{title: 'tab标签页1',html : 'tab标签页1内容'},

{title: 'tab标签页2',html : 'tab标签页2内容'},

{title: 'tab标签页3',html : 'tab标签页3内容'},

{title: 'tab标签页4',html : 'tab标签页4内容'},

{title: 'tab标签页5',html : 'tab标签页5内容'}

],

buttons : [

{

text : '添加标签页',

handler : addTabPage

}

],listeners:{

"contextmenu":function(tabPanel,myitem,e){

var menu = new Ext.menu.Menu([

{text:"关闭当前页",handler:function(){tabPanel.remove(myitem)}},

{text:"关闭其他所有页面",handler:function() {

tabPanel.items.each(function(item) {

if(item != myitem) {

tabPanel.remove(item);

}

})

}

},

{text:"打开新页面",handler:addTabPage}

]);

menu.showAt(e.getPoint());

}

}

});

function addTabPage(){

var index = tabPanel.items.length + 1;

var tabPage = tabPanel.add({//动态添加tab页

title: 'tab标签页'+index,

html : 'tab标签页'+index+'内容',

closable : true//允许关闭

})

tabPanel.setActiveTab(tabPage);//设置当前tab页

}

});

ViewPort和TabPanel的综合例子。

Ext.onReady(function(){

 

var tabPanel = new Ext.TabPanel({

title: '主面板',

region:'center',//指定子面板所在区域为center

activeTab : 0,//默认激活第一个tab页

animScroll : true,//使用动画滚动效果

enableTabScroll : true,//tab标签超宽时自动出现滚动按钮

items: [

{title:'欢迎页',html:'欢迎您回到 北风网--国内最大最权威的IT技术网站!'}

]

 

})

 

new Ext.Viewport({

title : '北风培训平台系统',

layout:'border',//表格布局

items: [

{

title: '北风培训平台系统',

html : '北风培训平台系统',

region: 'north',//指定子面板所在区域为north

height: 100

},{

title: '菜单栏',

region:'west',//指定子面板所在区域为west

width: 150,

tbar:[

{text:"操作",menu:[

{text:"我的订单",handler:myOrder},

{text:"资金管理",handler:moneyManager}

]}

]

},

tabPanel

]

});

 

function myOrder(){

var tabPage = tabPanel.add({//动态添加tab页

title: '我的订单',

html : '我的订单',

closable : true//允许关闭

})

tabPanel.setActiveTab(tabPage);//设置当前tab页

}

function moneyManager(){

var tabPage = tabPanel.add({//动态添加tab页

title: '资金管理',

html : '资金管理',

closable : true//允许关闭

})

tabPanel.setActiveTab(tabPage);//设置当前tab页

}

 

});

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值