日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Ext2.0教程三:Ext2.0從新建窗口開始

 Ethan的博客 2011-07-04

Ext2.0教程三:Ext2.0從新建窗口開始

310人閱讀 評論(0) 收藏 舉報(bào)

--wayfoon

    開發(fā)中,通常需要新建窗口,比如登陸窗口,新增窗口。

新建窗口使用到Ext.Window提供的類,

你可以先預(yù)覽效果:效果圖

建立一個簡單的窗口:

  1. var win=new Ext.Window({
  2.             id:''w'',
  3.             title:''wayfoon:新窗口'',//窗口顯示名稱
  4.             width:300,
  5.             height:140,
  6.             collapsible: true,//是否可折疊
  7.             layout : ''column'',//布局方式
  8.             items:[]//窗口需要增加的內(nèi)容
  9.         }).show();//讓窗口顯示出來

上面只定義了窗口的名稱、長、寬、布局方式,其他屬性之后詳細(xì)描述。你可以在items里面增加你需要的內(nèi)容。

比如你可以直接在items里面添加html代碼:

  1. items:[{
  2.     xtype : ''panel'',//html代碼容器
  3.     html : "姓名:<input type=''text'' name=''wayfoon'' onclick=''javascript:alert(wayfoon)''/>"
  4. }]

在這里,我將演示添加一個form表單。

先新建一個form。

form由Ext.form.FormPanel定義

一個標(biāo)準(zhǔn)的form定義

  1. var from =new Ext.form.FormPanel({
  2.     bodyStyle : ''padding-top:5px'',//距離窗口上端的距離
  3.     id:''f'',
  4.     labelWidth:50,//文本部分的寬度
  5.     labelAlign:''right'',//文本的排列方式
  6.     labelPad : 0,//文本和輸入框之間的距離
  7.     layout:''form'',//布局方式
  8.     frame : true,
  9.     defaults:{//字元素默認(rèn)的屬性
  10.         width:200
  11.     },
  12.     defaultType:''textfield'',//默認(rèn)的input 類型
  13.     items:[{
  14.         id:''workid'',
  15.         cls : ''user'',
  16.         fieldLabel:''編號'',
  17.         //disabled:true,
  18.         allowBlank:false//是否允許為空
  19.     },{
  20.         id:''workname'',
  21.         fieldLabel:''名稱'',
  22.         allowBlank:false
  23.     }],
  24.     buttonAlign:''center'',//按鈕的排列方式
  25.         buttons:[{//按鈕寫在窗口,要比寫在form里面好看多了
  26.              text:''確定'',
  27.              type:''submit'',
  28.              handler:function(){//點(diǎn)擊觸發(fā)事件處理
  29.              }
  30.         }]
  31.     //這里不需要逗號,每個控件定義都是這樣的
  32. })

現(xiàn)在可以將form加入到窗口中,items:[form] 就可以!

這樣顯示的窗口不是很美觀,我們可以做些調(diào)整。將按鈕放到表單之外,也就是放在窗口下面。

這樣,修改之后的窗口,

  1. var win=new Ext.Window({
  2.     id:''w'',
  3.     renderTo: bd,
  4.     title:''wayfoon:新窗口'',
  5.     width:300,
  6.     height:140,
  7.     collapsible: true,//是否可折疊
  8.     defaults :{
  9.         // 容器內(nèi)元素是否顯示邊框
  10.         border : true
  11.     },
  12.     //layout:''fit'',
  13.     layout : ''column'',//布局方式
  14.     items:[form],//包含表單,多個用逗號隔開
  15.     buttonAlign:''center'',//按鈕的排列方式
  16.     buttons:[{//按鈕寫在窗口,要比寫在form里面好看多了
  17.         text:''確定'',
  18.         type:''submit'',
  19.         handler:function(){
  20.         }
  21.     }]
  22. }).show();

一個新窗口,基本完成!

可以將下面代碼保存成*.htm執(zhí)行。

所有代碼:

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
  2. <html>
  3. <head>
  4. <title> wayfoon:新窗口 </title>

  5.     <link rel="stylesheet" type="text/css" href="http://www./ext22/resources/css/ext-all.css" /> 
  6.     <script type="text/javascript" src="http://www./ext22/adapter/ext/ext-base.js"></script>
  7.     <script type="text/javascript" src="http://www./ext22/ext-all.js"></script>

  8.     
  9. <meta http-equiv="Content-Type" content="text/html; charset=gb2312"></head>

  10. <body>
  11.     <script>
  12.     Ext.onReady(function(){ 
  13.         Ext.QuickTips.init();//初始化鼠標(biāo)停留時的顯示框
  14.         Ext.form.Field.prototype.msgTarget = ''side'';
  15.         var bd = Ext.getBody();

  16.     var form =new Ext.form.FormPanel({
  17.         bodyStyle : ''padding-top:5px'',//距離窗口上端的距離
  18.         id:''ll'',
  19.         labelWidth:50,//文本部分的寬度
  20.         labelAlign:''right'',//文本的排列方式
  21.         labelPad : 0,//文本和輸入框之間的距離
  22.         layout:''form'',//布局方式
  23.         frame : true,
  24.         defaults:{//字元素默認(rèn)的屬性
  25.             width:200
  26.         },
  27.         defaultType:''textfield'',//默認(rèn)的input 類型
  28.         items:[{
  29.             id:''workid'',
  30.             cls : ''user'',
  31.             fieldLabel:''編號'',
  32.             //disabled:true,
  33.             allowBlank:false//是否允許為空
  34.         },{
  35.             id:''workname'',
  36.             fieldLabel:''名稱'',
  37.             allowBlank:false
  38.         }]
  39.         
  40.     })

  41.     var win=new Ext.Window({
  42.         id:''w'',
  43.         renderTo: bd,
  44.         title:''wayfoon:新窗口'',
  45.         width:300,
  46.         height:140,
  47.         collapsible: true,//是否可折疊
  48.         defaults :{
  49.             // 容器內(nèi)元素是否顯示邊框
  50.             border : true
  51.         },
  52.         //layout:''fit'',
  53.         layout : ''column'',
  54.         items:[form],
  55.         buttonAlign:''center'',//按鈕的排列方式
  56.         buttons:[{//按鈕寫在窗口,要比寫在form里面好看多了
  57.             text:''確定'',
  58.             type:''submit'',
  59.             handler:function(){
  60.             }
  61.         }]
  62.     }).show();
  63.         

  64.     });
  65.     </script>
  66. </body>
  67. </html>

效果圖:

 

如果你想在按鈕觸發(fā)時,添加事件

  1. handler:function(){
  2.     alert(123);
  3.     var workid=Ext.get(''workid'').dom.value;
  4.     alert(workid);            
  5. }

下面演示一個submit登陸事件,

你也可以單獨(dú)定義一個方法(調(diào)用方法,handler:login):

  1.  // 單擊按鈕時執(zhí)行登陸操作
  2. var login = function(){
  3.     var workid=Ext.get(''workid'').dom.value;
        alert("wayfoon:"+workid);
  4.     /**
  5.         這里可以判斷輸入的值是否合法,(通過 類似:var workid=Ext.get(''workid'').dom.value;得到值日)否則不執(zhí)行下面的submit
  6.     **/
  7.     // 執(zhí)行當(dāng)前表單面板的submit
  8.     f.form.submit({
  9.         // 動作發(fā)生期間顯示的文本信息
  10.             //waitMsg : ''正在登錄......'',
  11.             // submit發(fā)生時指向的地址
  12.             url : ''/xxx/login.jsp'',
  13.             // 表單提交方式
  14.             method : ''POST'',
  15.             // 數(shù)據(jù)驗(yàn)證通過時發(fā)生的動作
  16.             success : function(form, action){
  17.                 //成功的走向
  18.                     window.location.href = ''main.htm?t=''+new Date();
  19.              
  20.             },
  21.             // 反之......
  22.             failure : function(form, action){
  23.                 if (action.failureType == Ext.form.Action.SERVER_INVALID)
  24.                     Ext.MessageBox.alert(''警告'', action.result.errors.msg);
  25.             }
  26.         });
  27. };

login 方法要在調(diào)用之前定義好。

 

完整的代碼如下:

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
  2. <html>
  3. <head>
  4. <title> wayfoon:新窗口 </title>

  5.     <link rel="stylesheet" type="text/css" href="http://www./ext22/resources/css/ext-all.css" /> 
  6.     <script type="text/javascript" src="http://www./ext22/adapter/ext/ext-base.js"></script>
  7.     <script type="text/javascript" src="http://www./ext22/ext-all.js"></script>

  8.     
  9. <meta http-equiv="Content-Type" content="text/html; charset=gb2312"></head>

  10. <body>
  11.     <script>
  12.     Ext.onReady(function(){ 
  13.         Ext.QuickTips.init();//初始化鼠標(biāo)停留時的顯示框
  14.         Ext.form.Field.prototype.msgTarget = ''side'';
  15.         var bd = Ext.getBody();

  16.     var form =new Ext.form.FormPanel({
  17.         bodyStyle : ''padding-top:5px'',//距離窗口上端的距離
  18.         id:''ll'',
  19.         labelWidth:50,//文本部分的寬度
  20.         labelAlign:''right'',//文本的排列方式
  21.         labelPad : 0,//文本和輸入框之間的距離
  22.         layout:''form'',//布局方式
  23.         frame : true,
  24.         defaults:{//字元素默認(rèn)的屬性
  25.             width:200
  26.         },
  27.         defaultType:''textfield'',//默認(rèn)的input 類型
  28.         items:[{
  29.             id:''workid'',
  30.             cls : ''user'',
  31.             fieldLabel:''編號'',
  32.             //disabled:true,
  33.             allowBlank:false//是否允許為空
  34.         },{
  35.             id:''workname'',
  36.             fieldLabel:''名稱'',
  37.             allowBlank:false
  38.         }]
  39.         
  40.     })
  41.  // 單擊按鈕時執(zhí)行登陸操作
  42.     var login = function(){
  43.     var workid=Ext.get(''workid'').dom.value;
  44.     alert("wayfoon:"+workid);
  45.         /**
  46.             這里可以判斷輸入的值是否合法。否則不執(zhí)行下面的submit
  47.         **/
  48.         // 執(zhí)行當(dāng)前表單面板的submit
  49.         form.form.submit({
  50.             // 動作發(fā)生期間顯示的文本信息
  51.                 waitMsg : ''正在登錄......'',
  52.                 // submit發(fā)生時指向的地址
  53.                 url : ''/mktweb/login.jsp'',
  54.                 // 表單提交方式
  55.                 method : ''POST'',
  56.                 // 數(shù)據(jù)驗(yàn)證通過時發(fā)生的動作
  57.                 success : function(form, action){
  58.                    //成功走向
  59.                         window.location.href = ''main.htm?t=''+new Date();
  60.                    
  61.                 },
  62.                 // 反之......
  63.                 failure : function(form, action){
  64.                 //   reset();
  65.                     if (action.failureType == Ext.form.Action.SERVER_INVALID)
  66.                         Ext.MessageBox.alert(''警告'', action.result.errors.msg);
  67.                 }
  68.             });
  69.     };
  70.     var win=new Ext.Window({
  71.         id:''w'',
  72.         renderTo: bd,
  73.         title:''wayfoon:新窗口'',
  74.         width:300,
  75.         height:140,
  76.         collapsible: true,//是否可折疊
  77.         defaults :{
  78.             // 容器內(nèi)元素是否顯示邊框
  79.             border : true
  80.         },
  81.         //layout:''fit'',
  82.         layout : ''column'',
  83.         items:[form],
  84.         buttonAlign:''center'',//按鈕的排列方式
  85.         buttons:[{//按鈕寫在窗口,要比寫在form里面好看多了
  86.             text:''確定'',
  87.             type:''submit'',
  88.             handler:login
  89.         }]
  90.     }).show();
  91.         
  92.     
  93.     });
  94.     </script>
  95. </body>
  96. </html>

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多