18. 视图Ext.Viewport和窗口Ext.Window用法

转自:http://www.cnblogs.com/linjiqin/archive/2011/06/22/2087003.html

视图Ext.Viewport和窗口Ext.Window用法.

1、Viewport,顶级界面,浏览器显示区域。

代表整个浏览器的应用程序主界面控件。VeiwPort表示整个浏览器显示区域,该对象渲染到页面的body区域,并会随着浏览器显示区域的大小自动改变,一个页面中只能有一个ViewPort实例。看下面的代码:
[javascript] view plain copy
  1. <script type="text/javascript">  
  2.         Ext.onReady(function(){  
  3.            new Ext.Viewport({  
  4.               layout: "fit",  
  5.               items: [{  
  6.                  title: "面板",  
  7.                  html: "",  
  8.                  bbar: [{  
  9.                     text: "按钮一"  
  10.                  },{  
  11.                     text: "按钮二"  
  12.                  }]  
  13.               }]  
  14.            });  
  15.         });  
  16.         </script>  

显示效果:


2、Viewport特点

Viewport不需要再指定renderTo,而我们也看到Viewport确实填充了整个浏览器显示区域,并会随着浏览器显示区域大小的改变而改改。他有三个特点:

1)、创建即可使用。不需要渲染,当组件在创建时会自动渲染到document.body节点。

2)、不能使用程序改变该控件的大小,也没有滚动条。

3)、只是作为容器组件,没有额外的属性、方法及事件

下面再来看看Viewport的应用场景:

Viewport主要用于应用程序的主界面,可以通过使用不同的布局来搭建出不同风格的应用程序主界面。在Viewport上常用的布局有fit、border等,当然在需要的时候其它布局也可以使用。看下面的代码:

[javascript] view plain copy
  1. <script type="text/javascript">  
  2.         Ext.onReady(function(){  
  3.            new Ext.Viewport({  
  4.               enableTabScroll: true,  
  5.               layout: "border",  
  6.               items: [{  
  7.                  title: "面板",  
  8.                  region: "north",  
  9.                  height: 50,  
  10.                  html: "<h1>网站后台管理系统!</h1>"  
  11.               }, {  
  12.                  title:"菜单",  
  13.                  region:"west",  
  14.                  200,  
  15.                  collapsible:true,   
  16.                  html:"菜单栏"  
  17.               }, {  
  18.                  xtype: "tabpanel",  
  19.                  region: "center",  
  20.                  items: [{  
  21.                     title: "面板一"  
  22.                  }, {  
  23.                     title: "面板二"  
  24.                  }]  
  25.               }]  
  26.            });  
  27.         });  
  28.         </script>  
显示效果如下:


3、窗口Window

  我们来讲窗口Window控件,他可以用来表示应用程序中的一个窗口,在窗口中可以放置种种界面元素。窗口Ext.Window的父类是Ext.Panel,因此窗口其实是一种特殊的面板Panel。窗口包含了浮动、可拖动、可关闭、最大化、最小化等特性。

      由于窗口是总是顶级容器,因此一般情况下我都是直接使用new操作符来创建一个Ext.Window对象来使用窗口。窗口中的内容与面板一样,可以是各种各样的Ext组件或控件元素,也可以是html片段或指定url中的html内容。由于窗口是一种特殊的面板,因此面板的能用特性对窗口仍然适用。相对于面板Ext.Panel来说,他不需要指定渲染目标,也就是不需要指定渲染到页面中的某一个节点。当调用窗口的show方法的时候,他会自动把窗口渲染(render)到当前文档的body节点中,并使该面板浮动在页面中,使得窗口不依赖于其它的父容器而存在。

4、窗口关闭及隐藏

    窗口的隐藏及关闭。在程序中我们可以直接调用窗口对象的相关方法来实现窗口的隐藏及关闭操作。其中hide()方法用来隐藏窗口,而close()方法则用来直接关闭并销毁窗口。如果程序窗口在后面的程序中不需要重新显示,则应该使用hide()方法,这样可以节省再次初始化这个窗口所产生的资源消耗;如果窗口在后面的程序中不需要重新显示,则应该调用close()来关闭窗口,从而释放窗口对象所占用的系统资源。

      默认情况下,窗口的标题工具栏中会包括一个关闭按钮,点击该按钮会执行窗口的关闭或隐藏操作。


5、模态及非模态窗口

  窗口可以分为模态窗口及非模态窗口两种类型,所谓模态窗口就是指当该窗口打开时,除了本窗口中的内容可以操作以外,窗口以外的控件、界面元素及内容都处于不可用状态,只有当关闭该窗口后,这些变成不可用状态的元素及内容才能恢复成为可用状态;而非模态窗口打开时,不影响窗口以外的其它元素的可操作及可用状态。

      在配置选项中通过modal选项来指定窗口是否属于模式窗口。默认情况下的窗口都是非模态窗口,当把modal属性设置为true时,窗口就会变成一个模态窗口。


转载来自 http://www.cnblogs.com/linjiqin/archive/2011/06/22/2087003.html
原文地址:https://www.cnblogs.com/sharpest/p/7552757.html