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

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

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

    Terry.Li-彬

    虛其心,可解天下之問;專其心,可治天下之學;靜其心,可悟天下之理;恒其心,可成天下之業。

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      143 隨筆 :: 344 文章 :: 130 評論 :: 0 Trackbacks
    假設您要從資料庫中查詢出一些字串,然後填寫到表單的下拉選單中。

    例如一個示意的Java程式如下:
    1
    2
    3
    4
    5
    6
    7
    8
    package onlyfun.caterpillar;
     
    public class Option {
    public String[] getOptions() {
    // 實際上這些字串是從資料庫中查到的啦…
    return new String[] {"良葛格", "毛美眉", "米小狗"};
    }
    }


    傳回的字串陣列,您要填寫到下拉選單中,當然,首先我們要在dwr.xml中開發這個物件…
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN" "http://www.getahead.ltd.uk/dwr/dwr10.dtd">

    <dwr>
    <allow>
    <create creator="new" javascript="OPT">
    <param name="class" value="onlyfun.caterpillar.Option"/>
    </create>
    </allow>
    </dwr>


    這是我們的網頁…
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=BIG5">
    <script src="option.js" type="text/javascript"></script>
    <script src="dwr/interface/OPT.js" type="text/javascript"></script>
    <script src="dwr/engine.js" type="text/javascript"></script>
    <script src="dwr/util.js" type="text/javascript"></script>
     
    </head>
     
    <body>
    選項: <select id="opts"></select>
    </body>
    </html>


    傳回的字串陣列會填入opts這個select中,我們的option.js如下…
    1
    2
    3
    4
    5
    6
    7
    8
    window.onload = function() {
    OPT.getOptions(populate);
    };
     
    function populate(list){
    DWRUtil.removeAllOptions("opts");
    DWRUtil.addOptions("opts", list);
    }


    夠簡單了…不需要解釋了…

    看一下結果… 



    好啦!我知道有人在說了,這個程式有夠無聊…Dead

    改一下!就是個不錯的範例了,例如連動方塊,唔!在Ajax in action中叫啥?Dynamic double combo?…

    假設一個會去從資料庫中查詢資料的Java程式示意如下:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    package onlyfun.caterpillar;
     
    import java.util.Map;
    import java.util.TreeMap;
     
    public class Bike {
      private Map<String, String[]> bikes;
      
      public Bike() {
        bikes = new TreeMap<String, String[]>();
        bikes.put("2000", new String[] {"2000 T1", "2000 T2", "2000 T3"});
        bikes.put("2001", new String[] {"2001 A1", "2001 A2"});
        bikes.put("2002", new String[] {"2002 BW1", "2002 BW2", "2002 BW"});
        bikes.put("2003", new String[] {"2003 S320"});
        bikes.put("2004", new String[] {"2004 TA1", "2004 TA2", "2004 TA3"});
      }
      
      public String[] getYears() {
        String[] keys = new String[bikes.size()];
        int i = 0;
        for(String key : bikes.keySet()) {
          keys[i++] = key;
        }
        return keys;
      }
      
      public String[] getBikes(String year) {
        return bikes.get(year);
      }
    }


    getYears()跟getBkies()分別表示產品的年份跟型號,這邊用Map模擬,實際上資料是來自資料庫的查詢。

    一樣的,在dwr.xml中設定:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN" "http://www.getahead.ltd.uk/dwr/dwr10.dtd">

    <dwr>
    <allow>
    <create creator="new" javascript="Bike" scope="application">
    <param name="class" value="onlyfun.caterpillar.Bike"/>
    </create>
    </allow>
    </dwr>


    我們會有個腳踏車年份與型號查詢頁面:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=BIG5">
    <title>Insert title here</title>
    <script type='text/javascript' src='dwr/interface/Bike.js'></script>
    <script type='text/javascript' src='dwr/engine.js'></script>
    <script type='text/javascript' src='dwr/util.js'></script>
    <script type='text/javascript' src='bike.js'></script>
    </head>
    <body onload="refreshYearList();">
      年份:<select id="years" onchange="refreshBikeList();"></select><br/><br/>
      型號:<select id="bikes"></select><br/>
    </body>
    </html>


    注意,在選完第一個年份後,會觸發onchange事件,接著第二個下拉選單會自動填上對應年份的型號,而不是按鈕按下,再去取得第二個下拉選單,然後refresh...blah...blah...

    bike.js如下…
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    function refreshYearList() {
    Bike.getYears(populateYearList);
    }
     
    function populateYearList(list){
    DWRUtil.removeAllOptions("years");
    DWRUtil.addOptions("years", list);
    refreshBikeList();
    }
     
    function refreshBikeList() {
    var year = $("years").value;
    Bike.getBikes(year, populateBikeList);
    }
     
    function populateBikeList(list){
    DWRUtil.removeAllOptions("bikes");
    DWRUtil.addOptions("bikes", list);
    }


    一樣很簡單…

    看個無聊的畫面…XD




    posted on 2008-04-04 11:35 禮物 閱讀(326) 評論(0)  編輯  收藏 所屬分類: Dwr

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

    網站導航:
     
    主站蜘蛛池模板: www视频免费看| 曰韩无码AV片免费播放不卡| 亚洲电影一区二区| 亚洲国产AV无码专区亚洲AV| 亚洲人成人一区二区三区| 亚洲日韩在线观看| 国产综合亚洲专区在线| 精品亚洲一区二区三区在线观看| 亚洲精品国产福利一二区| 亚洲精品和日本精品| 亚洲精品偷拍视频免费观看| 久久亚洲中文字幕精品一区四| 久久精品国产亚洲Aⅴ蜜臀色欲| 日韩一卡2卡3卡4卡新区亚洲 | 最好2018中文免费视频| 国产亚洲视频在线| eeuss影院免费直达入口| 999zyz**站免费毛片| 久艹视频在线免费观看| 国产精品爱啪在线线免费观看| 青青草免费在线视频| 免费观看男人免费桶女人视频| 免费人成网站在线播放| 亚洲精品一级无码中文字幕| 亚洲va久久久噜噜噜久久| 亚洲色欲色欲综合网站| 亚洲国产成人精品激情| 色五月五月丁香亚洲综合网| a级毛片免费观看网站| 嫩草影院在线播放www免费观看| 猫咪免费人成网站在线观看| 在线免费观看中文字幕| 免费在线精品视频| 亚洲AV中文无码乱人伦下载 | 亚洲色婷婷六月亚洲婷婷6月| 亚洲av午夜福利精品一区| 亚洲sss综合天堂久久久| 国产精品亚洲精品日韩电影| a毛看片免费观看视频| 99久久久精品免费观看国产| 国产免费AV片无码永久免费|