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

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

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

    隨筆 - 115  文章 - 481  trackbacks - 0
    <2008年3月>
    2425262728291
    2345678
    9101112131415
    16171819202122
    23242526272829
    303112345

    常用鏈接

    留言簿(19)

    隨筆檔案(115)

    文章檔案(4)

    新聞檔案(1)

    成員連接

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    11.1.1 簡單菜單應用
         菜單包括很多種,比如下拉菜單、分組菜單位、上下文件彈出菜單位,菜單上的內容包括文件、單選框、按鈕等。對于ExtJS來說,菜單的實現非常簡單,我們來看下面示例。
      Html代碼如下:

    歡迎進入管理系統<br/>
    <div id="menu"></div>
     我們想在id為menu的這一區域里面顯示系統的主菜單,應用ExtJS,則可以使用下面的javascript代碼實現:
     
    var btn1=new Ext.Button({
     text:
    "文件",
     menu:[
      
    {icon:"open.jpg",text:"打開"},
      
    {icon:"save.jpg",text:"保存"},
      
    {text:"關閉"}]}
    );
    var btn2=new Ext.Button({
     text:
    "編輯",
     menu:[
      
    {text:"復制"},
      
    {text:"拷貝"},
      
    "-",
      
    {text:"查找"},
      
    {text:"替換"}
     ] 
    }
    )
    var toolbar=new Ext.Toolbar({
     renderTo:
    "menu",
     items:[btn1,btn2]
    }
    );




       在上面的代碼中,我們首先創建了兩個普通的按鈕Button,注意構造參數中的配置選項除了text以外,還包含一下menu屬性,menu屬性是一個數組,數組中的每一項就是一個菜單項;兩個包含了菜單的按鈕創建完以后,我們使用new Ext.Toolbar直接創建一個簡單工具欄控件,指定工具欄渲染到id為menu的DOM元素,并且工具欄中包含兩個按鈕。執行上面的代碼,可以得到如圖11-1所示的效果。
     
      圖11-1 鼠標移到“文件”按鈕時顯示的下拉菜單

     
      圖11-2 鼠標移到“編輯”按鈕時顯示的下拉菜單

    11.1.2 手動創建及顯示菜單
      當然,對于給包含menu屬性的控件添加菜單非常容易,由于這些控件已經自動添加了菜單處理及顯示的代碼。對于沒有提供菜單支持的控件來說,我們可以直接使用ExtJS中的菜單組件Ext.menu.Menu來實現顯示菜單。
      在ExtJS中,菜單項由Ext.menu.Item類定義,該類直接繼承自Ext.menu.BaseItem,我們只需創建一個菜單Menu對象,然后往Menu對象中加入菜單項,然后在需要顯示菜單的時候調用菜單Menu對象的show或showAt方法即可在指定位置顯示菜單。我們再來看下面的示例。
      假如頁面中html代碼如下:
    <br/>
    <div id="hello" style="cursor:pointer">顯示菜單</div>

      現在我們要實現在用戶點擊“顯示菜單”這一個div時,顯示一個包含“文件”、“編輯”等項的下拉菜單,下面的javascript代碼實現了該功能:

    var menu=new Ext.menu.Menu();
     menu.add(
    {
      text:
    "文件",
      menu:[
       
    {text:"打開"},
       
    {text:"保存"},
       
    {text:"關閉"}]
      }
    ,
      
    {
      text:
    "編輯",
      menu:[
       
    {text:"復制"},
       
    {text:"拷貝"}]
      }

     );
     
    var h=Ext.get("hello");
     h.on(
    "click",function(e){
      menu.show(h);
     }

     );


      在上面的代碼中,我們首先使用new Ext.menu.Menu()創建了一個菜單對象,然后再調用菜單對象的add方法來加入菜單項,add方法可以一次性加入多個菜單項,每一個菜單項可以是一個Ext.menu.Item對象,也可以是用于構造Ext.menu.Item的配置對象,這里直接使用的是菜單項描述對象。在菜單項中,我們又使用menu屬性來定義了“文件”、“編輯”兩個菜單項的二級菜單。
      在定義完了菜單并加入菜單項后,我們定義了hello這個DOM元素的click事件響應函數,在響應函數中調用菜單對象menu的show方法來顯示菜單,show方法中包含一個參數,表示讓菜單顯示在哪兒。
    執行上面的程序,點擊頁面中“顯示菜單”這個DIV,則會看到如圖11-3所示的菜單顯示效果。
     
      圖11-3 手動創建及顯示菜單

    11.1.3 ExtJS中的菜單項
      在ExtJS中,菜單項提供了普通菜單項、文本菜單項、單選、復選等幾種基本的菜單項,我們前面兩個例子中涉及到的都是普通的菜單項。下面我們再通過一個示例來簡單地對文本菜單項、單選及復選菜單項有一個簡單的了解,代碼內容如下:

    var menu=new Ext.menu.Menu();
     menu.add(
    {
      text:
    "字號",
      menu:[
       
    new Ext.menu.CheckItem({text:"",group:"font"}),
       
    new Ext.menu.CheckItem({text:"",group:"font"}),
       
    new Ext.menu.CheckItem({text:"",group:"font"})
       ]
      }
    ,
      
    {
      text:
    "字體",
      menu:[
       
    new Ext.menu.CheckItem({text:"加粗"}),
       
    new Ext.menu.CheckItem({text:"斜體"})
       ]
      }
    ,
      
    "-",
      
    new  Ext.menu.TextItem("文本菜單項1"),
      
    "文本菜單項2"
      
     );
     
    var h=Ext.get("hello");
     h.on(
    "click",function(e){
      menu.show(h);
     }

     );



       在上面的代碼中,首先使用new Ext.menu.Menu()來創建了一個菜單對象,在使用add方法添加菜單項的時候,“字號”菜單的二級菜單項是CheckItem對象,里面通過設置group屬性使得該菜單項成為單選菜單項,因為“字號”同一時刻只能選擇一種;“字體”菜單的二級菜單項同樣是使用CheckItem來創建,由于沒有指定group屬性,因些該菜單項就是復選菜單項。另外,還使用new  Ext.menu.TextItem來創建文本菜單項,文本菜單項也可以直接使用字符串代表,比如“文本菜單項2”,而文本內容為“-”的文本菜單項表現出來會成來菜單項分隔符。執行上面的程序,點擊頁面中“hello”這個DIV時,將會顯示菜單,效果如圖11-4與圖11-5所示。
     
      圖11-4 單選菜單項效果
     
      圖11-5 復選菜單項效果
    11.1.4 處理菜單事件
      對于普通的菜單項來說,要設置事件響應函數非常簡單,只需要在菜單項添初始化的時候,在配置選項中添加上handler屬性及值即可。比如下面包含了事件處理器的菜單項:

    function openFile()
    {
     Ext.MessageBox.alert(
    "提示","打開文件");
    }

    var btn1=new Ext.Button({
     text:
    "文件",
     menu:[
      
    {icon:"open.jpg",text:"打開",handler:openFile},
      
    {icon:"save.jpg",text:"保存"},
      
    {text:"關閉"}]
    }
    );



    在“文件”菜單項下面的“打開”菜單項中,設置了handler屬性,因此點擊該菜單項則會執行openFile函數。
    11.1.5 其它菜單項
      除了普通菜單項、文本、單選菜單項、復選菜單項以外,ExtJS中的菜單項理論上還可以是其它任何控件,或者說頁面中大部份DOM節點都可以用來做為菜單項上面的內容。ExtJS提供了一個Ext.menu.Adapter類來支持把其它控件轉換成菜單項,并提供了兩個常用的用于選擇日期及顏色的菜單,即Ext.menu.DateMenu與Ext.menu.ColorMenu,這兩個菜單里面都只有一個菜單項,即Ext.menu.DateItem與Ext.menu.ColorItem。下面簡單看示例:

    var btn1=new Ext.Button({
     text:
    "文件",
     menu:[
      
    {icon:"open.jpg",text:"打開"},
      
    {icon:"save.jpg",text:"保存"},
      
    {text:"關閉"}]}
    );
    var btn2=new Ext.Button({
     text:
    "編輯",
     menu:[
      
    {text:"復制"},
      
    {text:"拷貝"},
      
    "-",
      
    {text:"查找"},
      
    {text:"替換"}
     ] 
    }
    );
    var btn3=new Ext.Button({
     text:
    "其它",
     menu:[
      
    {text:"選擇日期",menu:new Ext.menu.DateMenu()},
      
    {text:"選擇顏色",menu:new Ext.menu.ColorMenu()}
     ] 
    }
    );
    var toolbar=new Ext.Toolbar({
     renderTo:
    "menu",
     items:[btn1,btn2,btn3]
    }
    );



      在上面的代碼中,btn3這個按鈕下面包含“選擇日期”及“選擇顏色”兩個菜單項,選擇日期下的菜單是一個DateMenu對象,“選擇顏色”下的菜單是ColorMenu對象。執行上面的程序,當點擊其它按鈕的時候,可以得到如圖11-6與11-7所示的日期選擇及顏色選擇菜單。
     
      作者:冷雨  本文摘自《ExtJS實用開發指南》,該指南當前在北京、深圳、成都、重慶、沈陽等城市均已經可以直接到服務點購買,具體聯系方式:http://www.vifir.com/stations.html 。

    posted on 2008-03-26 09:17 簡易java框架 閱讀(2334) 評論(2)  編輯  收藏

    FeedBack:
    # re: ext中的菜單基本應用[未登錄] 2008-03-26 09:42 BeanSoft
    不錯,挺實用的!  回復  更多評論
      
    # re: ext中的菜單基本應用 2008-03-26 10:44 冷雨

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲午夜电影在线观看高清 | 久久久久亚洲AV无码网站| 亚洲最大免费视频网| 亚洲精品理论电影在线观看| 久久精品国产亚洲一区二区三区| 男女午夜24式免费视频| 亚洲中文字幕一二三四区苍井空| 免费观看四虎精品国产永久| 中文字幕免费播放| 国产亚洲国产bv网站在线| 国产gav成人免费播放视频| 色www永久免费网站| 亚洲日韩精品国产一区二区三区| 亚洲精品国精品久久99热| 日本最新免费网站| 一级做a爰片久久毛片免费看| 亚洲色图国产精品| 四虎免费影院4hu永久免费| 国产精品免费大片| 黄页网站在线免费观看| 亚洲六月丁香六月婷婷蜜芽 | 亚洲av综合av一区二区三区| 亚洲宅男永久在线| 亚洲欧洲自拍拍偷精品 美利坚 | 欧洲乱码伦视频免费国产| 亚洲精品白色在线发布| 久久久久亚洲AV无码专区桃色| 国产无人区码卡二卡三卡免费| 久久国产美女免费观看精品 | 亚洲黑人嫩小videos| 亚洲精品456播放| 好男人看视频免费2019中文| 91福利视频免费观看| 亚洲五月午夜免费在线视频| 亚洲精品av无码喷奶水糖心| 亚洲伊人tv综合网色| 亚洲国产日韩在线视频| 日韩一区二区免费视频| 91久久成人免费| 国产成人精品免费久久久久| www在线观看播放免费视频日本|