<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

       很久前知道ExtJS 這個Javascript庫,更聽說ExtJS 實現的界面效果非常漂亮。但是遺憾的是一直沒有用過,直到今天才下載下來學習學習,其實得感謝一個人,那就是BeanSoft,是他的一篇extjs應用,讓本人燃起了學習extjs的欲火(),筆者個人覺得分享自己的知識是我享受別人勞動成果后的一種義務和職責。不過出于水平所限,能分享的也實在有限。

       ext-2.1 是新出的一個版本,其開源協議從以前的LGPL 轉變成了 GPL 。對使用者來說多少會有一定影響。讀者若對兩種開源協議有困惑,可以查閱筆者先前轉載的文章:五種開源協議的比較(BSD,Apache,GPL,LGPL,MIT)

    入門MessageBox 篇:

    相信廣大讀者對以前javascript中的alert 函數相當熟悉,至少使用過多次吧。在筆者早期學習javascript的過程中,那時候缺少有效的調試工具,就老愛用alert 來輔助調試(曾因此獲得不少批評),直到后來多了許多優秀的js調試工具,比如firebug之類的。以MessageBox 作為入門學習篇,應該不算錯誤之舉吧。下面就總結下自己的學習過程及發現。
       首先從 http://extjs.com 下載到ext壓縮包,解壓后,直接就“靠!”了一句。20多M,太大了,沒法用啊。進入目錄后發現其實內部帶有許多你在使用的時候,不必一股腦引用的東西。比如docs 比如 examples 等等目錄文件,一般是文檔資料,演示范例罷了。第一件事情做減法,把你不用的文件刪掉。最后剩下幾個核心JS 和資源 。

       創建工程,建立MessageBox.html:

    <! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd" >
    < html >
        
    < head >
            
    < meta  http-equiv ="Content-Type"  content ="text/html; charset=UTF-8"   />
             
    < link  rel ="stylesheet"  type ="text/css"  href ="ext/resources/css/ext-all.css" >
            
    < script  type ="text/javascript"  src ="ext/ext-base.js" ></ script >
            
    < script  type ="text/javascript"  src ="ext/ext-all.js" ></ script >
            
    < title > 學習ExtJS之Panel </ title >
            
    < script  type ="text/javascript" >
                
    function  TestPanel()
                {
                    Ext.MessageBox.alert('Status', 'Changes saved successfully.');
                }
                
    </ script >
        
    </ head >
        
    < body  onload ="TestPanel();" >
        
    </ body >
    </ html >

    通過代碼中引入JS 的路徑,可以見筆者對ext的目錄有所調整。運行怎么樣看到效果了吧:

       extjs_message_box_1.JPG
    使用是簡單的,Ext.MessageBox.alert('Status', 'Changes saved successfully.');和我們以前用alert一樣就一行就行了。而且其可以帶回調參數Ext.MessageBox.alert('Status', 'Changes saved successfully.',fun1);這句效果是關閉或者點擊確定后,將調用fun1函數。還發現Extjs 有個特別新鮮的函數:

       Ext.onReady( function ()
       {
           Ext.MessageBox.alert('Status', 'Changes saved successfully.');
       
        });

    寫了這個函數就不用再在onload里加事件了。因為onReady 就是頁面加載完成調用函數。

    對應原來的confirm函數 ext也與自己的:   

    Ext.onReady( function ()
       {
           Ext.MessageBox.confirm('標題', '需要讓用戶確認的內容
    ? ',showResult);
       
        });
        
    function  showResult(btn)
        {
            
    // alert(btn);
             // btn 為yes 或者 no 
        }

    通過回調函數showResult 參數btn 能得到用戶選擇的是yes 還是no。下面是效果圖:
    extjs_message_box_2.JPG

    當然ExtJS 還為我們準備好了prompt函數:

    Ext.onReady( function ()
       {
           Ext.MessageBox.prompt('姓名', 'Please enter your name:', showResult);
       
        });
        
    function  showResult(btn,text)
        {
         
    // alert(btn);
          // alert(text);
        }


    效果圖如下:
    extjs_message_box_3.JPG

    這個函數的回調函數第一個參數能得到ok 或者cancel ,第二個參數是獲取用戶輸入信息。

    還有比較靈活的show用法:

    Ext.onReady( function ()
                {
                    Ext.MessageBox.show(
                       {
                           title: 'Address',
                           msg: 'Please enter your address:',
                           width:
    300 ,
                           buttons: Ext.MessageBox.OKCANCEL,
                           multiline: 
    true ,
                           fn: showResult
                                              });                
                      });    
                
                
    function  showResult(btn,text)
                 {
                     alert(btn);
                    alert(text);
                 }

    上面實現的效果是:
    extjs_message_box_4.JPG
    這種用法比較靈活,不需要用戶輸入multiline 值設置為false就行了。

    如果改變下面按鈕組為:buttons: Ext.MessageBox.YESNOCANCEL,
    那下面的按鈕馬上就變了,看看下圖效果。

    extjs_message_box_5.JPG
    常見按鈕組有如下一些:

    Ext.MessageBox.OK
    Ext.MessageBox.YESNO
    Ext.MessageBox.YESNOCANCEL
    Ext.MessageBox.OKCANCEL

    若給show增加一個icon效果(加入一行代碼:icon: Ext.MessageBox.QUESTION):
    extjs_message_box_6.JPG
    還有如下幾種常用圖標:
    Ext.MessageBox.INFO;
    Ext.MessageBox.QUESTION;
    Ext.MessageBox.WARNING;
    Ext.MessageBox.ERROR;

       在extjs messagebox實例中還有一些進度條的使用。
    Ext.onReady(function()
                {
                    Ext.MessageBox.show(
                       {
                           title: 'Please wait',
                           msg: 'Loading items',
                           progressText: 'Initializing',
                           width:
    300,
                           progress:
    true,
                           closable:
    false
                           
                           
    //animEl: 'mb3'
                        });    
                        
    var f = function(v){
                            
    return function(){
                                
    if(v == 12){
                                    Ext.MessageBox.hide();
                                    
    //Ext.example.msg('Done', 'Your fake items were loaded!');
                                }else{
                                    
    var i = v/11;
                                    Ext.MessageBox.updateProgress(i, Math.round(
    100*i)+'% completed');
                                }
                           };
                       };
                       
    for(var i = 1; i < 13; i++){
                           setTimeout(f(i), i
    *500);
                       }            
                      });    

    效果如下:
    extjs_message_box_7.JPG
    至于進度條在實際中應用,進度函數是需要自己處理的,不然是沒什么意義的。
    注意value為0-1之間的數,表示進度條的進度.這種比較普通。
    還有一種:
     第二種:(通過固定時間控制進度加載)
    Ext.get("btn1").on(
              
    "click",
              
    function(){
                 Ext.MessageBox.show({
                     title:
    "時間進度條",
                     msg:
    "5s后關閉進度框",
                     progress:
    true,
                     width:
    300,
                     wait:
    true,
                     waitConfig:{interval:
    600},//0.6s進度條自動加載一定長度
                     closable:true
                 });
                 setTimeout(
    function(){Ext.MessageBox.hide()},5000);//5后執行關閉窗口函數
              }
    最后關于那個waitConfig的參數,在此說明下:
    1.interval:進度的頻率
    2.duration:執行進度失效時間,但進度消失。
    3.fn:duration的時間到后執行的函數
    所以,另外一種寫法為:
        Ext.get(
    "btn1").on(
              
    "click",
              
    function(){
                 Ext.MessageBox.show({
                     title:
    "時間進度條",
                     msg:
    "5s后關閉進度框",
                     progress:
    true,
                     width:
    300,
                     wait:
    true,
                     waitConfig:{
                                  interval:
    600,
                                  duration:
    5000,
                                  fn:
    function(){
                                    Ext.MessageBox.hide();
    //讓進度條消失
                                  }},
                     closable:
    true
                 });
                 
    //setTimeout(function(){Ext.MessageBox.hide()},5000);
              }
       );


    實際上我對extjs比較喜歡的是grid 部分,表格功能相當強大。下期將對grid 的使用做專門的總結。
    posted on 2008-07-05 18:47 -274°C 閱讀(11125) 評論(6)  編輯  收藏 所屬分類: web前端


    FeedBack:
    # re: ExtJS 入門學習之 messagebox篇[未登錄]
    2008-07-08 15:34 | hawk
    我下載的是ext-2.1,根本就沒有ext/ext-base.js文件,直接報錯EXT找不到  回復  更多評論
      
    # re: ExtJS 入門學習之 messagebox篇
    2008-07-08 16:59 | java-he
    @hawk

    ext-2.1\adapter\ext 下面看看。  回復  更多評論
      
    # re: ExtJS 入門學習之 messagebox篇
    2008-07-19 18:06 |
    我下載的是2.1為什么eclipse一直跟我說EXT沒有定義,不知道是為什么?  回復  更多評論
      
    # re: ExtJS 入門學習之 messagebox篇
    2008-07-20 17:30 | java-he
    @云

    注意引入js的路徑是否匹配。  回復  更多評論
      
    # re: ExtJS 入門學習之 messagebox篇
    2010-05-28 15:33 | 路人甲
    您好,我照你的方法寫的,進度條,但是運行的時候,進度條顯示出來了,就是不走,怎么回事啊,我用的是ext3.2.0版的,難道跟版本有關系嗎?  回復  更多評論
      
    # re: ExtJS 入門學習之 messagebox篇
    2010-06-25 11:38 | -274°C
    @路人甲

    版本會有關系的,新版本請參照新版本中自帶的demo 。很久沒寫EXTJS,所以幫不上忙,請諒解。  回復  更多評論
      

    常用鏈接

    留言簿(21)

    隨筆分類(265)

    隨筆檔案(242)

    相冊

    JAVA網站

    關注的Blog

    搜索

    •  

    積分與排名

    • 積分 - 914374
    • 排名 - 40

    最新評論

    主站蜘蛛池模板: 亚洲AV色欲色欲WWW| 亚洲精品无码一区二区| 在线观看免费黄网站| 久久久久亚洲av成人无码电影| 久久亚洲高清观看| 青青青国产手机频在线免费观看| 亚洲日韩精品无码一区二区三区 | 亚洲免费视频网站| 老汉精品免费AV在线播放| 亚洲第一香蕉视频| 最近中文字幕无吗免费高清| 亚洲国产精品无码久久| 国产成人免费网站在线观看 | 国产精品亚洲玖玖玖在线观看| 深夜久久AAAAA级毛片免费看| 亚洲精品尤物yw在线影院| 在线成人精品国产区免费| 亚洲精品高清视频| 成全视频免费高清| 免费看黄福利app导航看一下黄色录像| 亚洲免费日韩无码系列 | 真实国产乱子伦精品免费| 亚洲中文字幕人成乱码| 国产免费无遮挡精品视频| 国产精品成人69XXX免费视频| 亚洲va在线va天堂va四虎 | 亚洲精品一级无码鲁丝片| 日本免费在线观看| 亚洲熟妇无码AV| 亚洲午夜爱爱香蕉片| 9420免费高清在线视频| 亚洲欧美自偷自拍另类视| 国产亚洲精品自在线观看| 24小时日本韩国高清免费| 亚洲第一男人天堂| 精品国产亚洲一区二区在线观看| 99爱视频99爱在线观看免费| 色九月亚洲综合网| 亚洲精品高清久久| 国产hs免费高清在线观看| 69视频在线是免费观看|