EXTJS初級UI設計進階教程(2)

來源:互聯網
上載者:User

瞭解Ext.Window

 

1、主要配置項: 

      closable:是否允許關閉視窗,預設為true。 
      closeAction:關閉視窗的動作,包括以下兩種: 
            close:從DOM刪除視窗,銷毀視窗及其所屬組件,視窗不再可用,重新顯示需要調用show方法。此為預設值。 
            hide:通過設定可見度隱藏視窗,視窗還可用,調用show方法後重新顯示。 
      constrain:是否約束視窗只能在容器內移動,預設為false。視窗預設渲染到document.body。 
      constrainHeader:是否約束視窗頭部只能在容器內移動,預設為false。 
      draggable:是否可拖曳,預設為true。 
      resizable:是否可改變視窗的大小,預設為true。 
      modal:是否為強制回應視窗,預設為false。 
      maximizable:是否可已最大化的視窗,預設為false。 
      maximized:是否在初始化時最大化顯示視窗,預設為false。 
      x:視窗的X座標值。 
      y:視窗的Y座標值。 
      manager:WindowGroup的引用。 

      expandOnShow:是否在視窗顯示時展開它,預設為true。 當取值為false時,collapsed取值為true時,視窗初始顯示時收縮。 
      minimizable:是否可已最小化的視窗,預設為false。需要自訂最小化行為。 
      defaultButton:當視窗獲得焦點時,預設獲得焦點的按鈕。 
      plain:主體背景是否透明,預設為false。 

2、主要方法: 

 

      show( [String/Element animateTarget], [Function callback], [Object scope] ):顯示視窗。 
      hide( [String/Element animateTarget], [Function callback], [Object scope] ):隱藏視窗。 
      center():視窗置中顯示。 
      close():關閉視窗,相當於closeAction值為close的情形。 
      maximize():已最大化的視窗。 
      restore():還原視窗大小。 
      toggleMaximize():在最大化和還原之間切換。 

      minimize():已最小化的視窗。 
      setActive( Boolean active ):啟用視窗。 
      focus():視窗獲得焦點。 
      toBack():後置視窗。 
      toFront( [Boolean e] ):前置視窗。 
      resize( Ext.Window this, Number width, Number height ):改變大小。 

 

3、Ext.WindowGroup的主要方法: 

      hideAll() 
      sendToBack( String/Object win ) 
      bringToFront( String/Object win ) 
      get( String/Object id ) 
      getActive() 

      each( Function fn, [Object scope] ) 
      getBy( Function fn, [Object scope] )

 

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><br /><html xmlns="http://www.w3.org/1999/xhtml"><br /><head><br /><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><br /><link rel="stylesheet" type="text/css" href="../../../resources/css/ext-all.css" mce_href="resources/css/ext-all.css" /><br /><title>登陸表單</title><br /><mce:script type="text/javascript" src="../../../adapter/ext/ext-base.js" mce_src="adapter/ext/ext-base.js"></mce:script><br /><mce:script type="text/javascript" src="../../../ext-all.js" mce_src="ext-all.js"></mce:script><br /><mce:script type="text/javascript" src="../../../build/locale/ext-lang-zh_CN.js" mce_src="build/locale/ext-lang-zh_CN.js"></mce:script><br /><mce:script type="text/javascript"><!--</p><p>Ext.onReady(function(){</p><p>var _window = new Ext.Window({<br />title:"登 陸",<br />frame:true,<br />width:260,<br />height:130,<br />layout:"form",<br />labelWidth:45,<br />plain:true,<br />resizable:false,<br />defaults:{xtype:"textfield" , width:180},<br />bodyStyle:"padding:3px",<br />buttonAlign :"center",<br />closeAction:"hide",<br />listeners:{<br />"show":function(){</p><p>alert("表單顯現") ;<br /> },<br />"hide":function(){</p><p>alert("表單隱藏") ;<br />},<br />"close":function(){</p><p>alert("表單關閉") ;<br />}<br />},<br />items:[{<br />fieldLabel:"帳號"<br />},{<br />fieldLabel:"密碼"<br />}],<br />buttons:[{<br />text:"確 定"<br />},{<br />text:"取 消",<br />handler:function(){</p><p>this.hide() ;</p><p>}<br />}]<br />}) ;</p><p>_window.show() ;</p><p>}) ;</p><p>// --></mce:script><br /></head><br /><body><br /></body><br /></html><br /> 

 

擴充代碼:

 


Ext.Window的closeAction為'close'時

Ext.Window:items: [memberForm]<br />memberForm:items : [gridPanel]<br />gridPanel:store: fileStore<br />var fileStore = new Ext.data.JsonStore({<br /> url:'getDocListForCancelAttDoc.do?FILEITEMID='+docId,<br /> baseParams:{command:'query'},<br /> totalProperty:'fileCount',<br /> root:'fileMembers',<br /> //列表欄位<br /> fields:fileFields,<br /> pruneModifiedRecords:true<br /> }); 

 

最開始設定Ext.Window的closeAction為'hide',每次關閉視窗後,下次載入的store還是原來的,於是每次又添加了store.reload();結果還是一樣。

將Ext.Window的closeAction改為'close'後,報Ext.fly()為空白或不是對象。

將Ext.Window的定義放到裡面後就不報了,暫時做個記錄如下:

if(!fileAppendixWindow){<br /> fileAppendixWindow = new Ext.Window({ //修改前的代碼,fileAppendixWindow在上面有定義<br /> title:'請選擇要取消的文檔',<br /> layout:'fit',<br /> resizable:false,<br /> width:500,<br /> height:300,<br /> closable:true,<br /> closeAction:'close',<br /> plain:true,<br /> modal: true,<br /> //視窗中加入文檔列表Panel<br /> items: [memberForm]<br /> });<br />} 

 

Ext.WindowGroup代碼塊

 

var i = 0, mygroup;<br />function newWin() {<br /> var win = new Ext.Window({title:"視窗"+i++,<br /> width: 400,<br /> height: 300,<br /> maximizable: true,<br /> manager: mygroup<br /> });<br /> win.show();<br />}<br />function toBack() {<br /> mygroup.sendToBack(mygroup.getActive());<br />}<br />function hideAll() {<br /> mygroup.hideAll();<br />}<br />Ext.onReady(function(){<br /> mygroup = new Ext.WindowGroup();<br /> Ext.get("btn").on("click",newWin);<br /> Ext.get("btnToBack").on("click",toBack);<br /> Ext.get("btnHide").on("click",hideAll);<br />}); 

 

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.