9910

          單飛

             :: 首頁 :: 聯系 :: 聚合  :: 管理

          util.js工具包包含了一些實用函數來幫助你用javascript操作從服務器返回的數據數據,以便來更新web頁面。 也可以在DWR以外使用它,因為它不依賴于DWR的其他部分。下面介紹這個工具的主要函數。
          7.13.1 $()函數
          $() 函數實現的功能相當于 document.getElementById方法。 因為在Ajax程序中,經常需要寫很多這樣的語句,所以使用 $() 會更簡潔。它通過指定的id來查找當前HTML文檔中的元素,如果傳遞給它多個參數,它會返回找到的元素的數組。所有非String類型的參數會被原封不 動的返回。這個函數的靈感來至于prototype庫,但是它可以在更多的瀏覽器上運行。
          $() 函數的使用方法為:
          var searchexp = $("searchbox").value
          <!—對應HTML表單的ID-->
          <input id="searchbox"/>
          7.12.2 addOptions與 removeAllOptions函數
          在DWR項目應用中,經常需要根據所選項來填充選擇列表。這現這種功能可能通過調用addOptions與 removeAllOptions函數來填充或移除列表。例如,如果希望在更新了select以后,它仍然保持更新前的選擇項,實現方法如下:
          var sel = dwr.util.getValue(id);
          dwr.util.removeAllOptions(id);
          Array array = new Array[ 'Africa', 'America', 'Asia', 'Australasia', 'Europe' ];   
          dwr.util.addOptions("id ",array);  
          dwr.util.setValue(id, sel);
          如果想加入一個初始的"請選擇..." 選項,那么可以直接加入下面的語句:
          dwr.util.addOptions(id, \["請選擇 ..."]);
          dwr.util.addOptions有5種模式,分別為:
          ? 數組模式:dwr.util.addOptions(selectid, array) 會創建多個option,每個option的文字和值都是數組元素中的值。
          ? 對象數組模式:(指定text): dwr.util.addOptions(selectid, data, prop) 用數組中的每個元素創造一個option,option的值和文字都是在prop中指定的對象的屬性。例如:  
          dwr.util.addOptions( "demo",   
                           [{ name:'Africa', id:'AF' },   
                            { name:'America', id:'AM' },   
                            { name:'Asia', id:'AS' },   
                            { name:'Australasia', id:'AU' },   
                            { name:'Europe', id:'EU' } ],'id','name');  
          ? 對象數組模式: (指定text和value值): dwr.util.addOptions(selectid, array, valueprop, textprop) 用數組中的每個元素創造一個option,option的值是對象的valueprop屬性,option的文字是對象的textprop屬性。 這種情況下,你需要指定要顯示 beans 的 property 以及 對應的 bean 值,例如:  
          public class Person {   
                private String name;   
                private Integer id;   
                public void set(){……}   
                public String get(){……}   
             }   
          dwr.util.addOptions("demo",array,'id','name');   
          其中id指向及bean的id屬性,在optiong中對應value,name指向bean的name屬性,對應下拉框中顯示的哪個值。
          ? 對象模式: dwr.util.addOptions(selectid, map, reverse)用每個屬性創建一個option。對象的屬性名用來作為option的值,對象的屬性值用來作為屬性的文字,如果reverse參數被設 置為true,那么對象的屬性值用來作為選項的值。
          ? 對象的Map模式:dwr.util.addOptions(selectid, map, valueprop, textprop) 用map中的每一個對象創建一個option。用對象的valueprop屬性做為option的value,用對象的textprop屬性做為 option的文字。
          ? ol 或 ul 列表模式:dwr.util.addOptions(ulid, array) 用數組中的元素創建多個li元素,它們的innerHTML是數組元素中的值。這種模式可以用來創建ul和ol列表。
          7.13.3 addRows與 removeAllRows函數
          在 DWR應用中,通過addRows與 removeAllRows這兩個函數來操作table表格,這個函數的第一個參數都是table、tbody、thead、tfoot的id。一般來說 最好使用tbody,因為這樣可以保持header和footer行不變。它們的用法如下:
          ? dwr.util.removeAllRows()
          dwr.util.removeAllRows(id);
          通過table元素的id刪除table中所有行。
          如果要刪除表格中的某一行,則可用如下方法:
          function deleteRows(id)
          {
          var tbody=document.getElementById("tb1");// tbody 的id
          var trow=document.getElementById(id);//要刪除的行號
          if(confirm("確定刪除?"))
          {
              tbody.removeChild(trow);
          }
          }
          ? dwr.util.addRows()
          dwr.util.addRows(id, array, cellfuncs, [options]);
          這行語句向指定id的table元素添加行。它使用數組中的每一個元素在table中創建一行。然后用cellfuncs從傳遞過來的行數據中提取單元格數據。其中參數:
          ? id: table元素的id(最好是tbody元素的id)
          ? array:數組或對象,做為更新表格數據。
          ? cellfuncs: 函數數組,從傳遞過來的行數據中提取單元格數據。
          ? options: 一個包含選項的對象,選項包括一個用來創建行的函數rowCreator(例如希望給tr加上css), 默認值是返回一個document.createElement("tr")。一個用來創建單元格的函數cellCreator(例如用th代替td)。 默認返回一個document.createElement("td")。下面就是一個向table元素添加行的應用例子,代碼如下:
          var cellFuncs = [
          function(data) { return data; },
          function(data) { return data.toUpperCase(); },
          function(data) {
              return "<input type='button' value='提交' onclick='alert(\"測試\");'/>";
          },
          function(data) { return count++; }
          ];
          var count = 1;
          dwr.util.addRows( "t1", , cellFuncs, { escapeHtml:false });
          <!—對應的HTML內容-->
          <table border="1" width="110%"   id="table17" name="table17" height="27">
          <tbody id="t1" name="t1">
          </tbody>
          </table>
          7.13.4 getText函數
          getText(id)和getValue(id)相似。用它可以得到select列表項目的顯示的文本,而不是當前選項的值。
          7.13.5 getValue函數
          dwr.util.getValue(id) 可以從HTML元素中取出其中的值,這個函數能操作大多數HTML元素,其中包括select(去處當前選項的值而不是文字)、input元素(包括 textarea)、div和span。下面就是一個getValue函數的應用例子,實現代碼如下:
          <html>
          <head>
             <title></title>
             <script type="text/javascript" src="dwr/util.js"></script>
             <script type="text/javascript" src="dwr/engine.js"></script>
             <script>
          function getValue()
          {
          var cnId = dwr.util.getValue("myId");
          var cnValue = dwr.util.getValue("myValue");
          alert(dwr.util.getValue("myId"));
          }
          </script>
          </head>
          <body>
             <input type="text" value="" id="myId" />,
             <input type="text" value="" id="myValue" />
             <input type="button" value="setValue" onclick="getValue();" />
          </body>
          </html>
          7.13.6 getValues函數
          getValues() 得到的是包含name/value對的javascript對象。name是HTML元素的ID,value會被更改為這些ID對象元素的內容。 getValues()可以傳入一個HTML元素(一個DOM對象或者id字符串)象。這個函數不會返回對象,它只更改傳遞給它的值。下面就是一個 getValues函數的應用例子,實現代碼如下:
          var person = { id:1, name:'tfnew21', address:'北京', salary:10000 };  
          dwr.util.getValues(person);  
          alert(person.name); //訪問person對象的屬于,運行后會在窗口中顯示’tfnew21’字符串
          dwr.util.getValues({textarea:null,select:null,text:null,password:null,button:null})   
          alert(textarea.value);// 執行后textarea.value的值為"test"
          //HTML中的代碼
          <input type="textarea" id="textarea" value="test" />
          <input type="text" id="text" value="tfnew21" />
          <input type="password" id="password" value="12345" />
          <select id="select">
          <option value="1" select>
          香蕉
          </option>
          </select>
          7.13.7 onReturn函數
          定 義在輸入框中按回車的響應,防止執行submit。當使用Ajax時,往往需要的觸發一些Javscript。 不幸的是不同的瀏覽器處理這個事件的方式不一樣。所以dwr.util.onReturn修復了這個差異。如果需要在一個表單元素中按回車時觸發一些 Javscript,實現代碼如下:
          <input type="text" onkeypress="dwr.util.onReturn(event,submitFunction)"/>
          <input type="button" onclick="submitFunction()"/>
          這個函數的工作原理與onSubmit()事件相似,只能存在于<FORM >元素中。
          7.13.8 selectRange函數
          selectRange用于選擇一個輸入框中的一定范圍的文字。 調用方法如下:
          dwr.util.selectRange(ele, start, end)//ele輸入ID,start開始位置,end結尾位置
          例如:<input type="text" id="sel-test" value="0123456">   
          dwr.util.selectRange("sel-test", 2, 5);  
          7.13.9 setValue函數
          dwr.util.setValue(id, value)根據第一個參數中指定的id找到相應元素,并根據第二個參數改變其中的值。 這個函數能操作大多數HTML元素,包括select、input元素(包括textarea)、div和span。例如:下面就是一個getValue 函數的應用例子,實現代碼如下:
          <html>
          <head>
             <title></title>
             <script type="text/javascript" src="dwr/util.js"></script>
             <script type="text/javascript" src="dwr/engine.js"></script>
             <script>
          function setValue()
          {
          var cnId = dwr.util.getValue("myId");
          var cnValue = dwr.util.getValue("myValue");
          dwr.util.setValue(cnId, cnValue);
          alert(dwr.util.getValue("myId"));
          }
          </script>
          </head>
          <body>
             dwr.util.setValue(
             <input type="text" value="" id="myId" />,
             <input type="text" value="" id="myValue" />
             )
             <input type="button" value="setValue" onclick="setValue();" />
          </body>
          </html>
          7.13.10 setValues函數
          setValues() 和setValue()非常相似,但它傳入的參數是一個擁有多個屬性的javascript object,屬性名稱是html頁面元素的id,屬性value為html頁面元素的value。下面就是一個setValues函數的應用例子,實現 代碼如下:
          <html>
          <head>
             <title></title>
             <script type="text/javascript" src="dwr/util.js"></script>
             <script type="text/javascript" src="dwr/engine.js"></script>
             <script>
          function setValue()
          {
          var cnId = {myAreaText:"tfnew21",myDiv:"ddr"};
          dwr.util.setValues(cnId);

          }
          </script>
          </head>
          <body>
             <input type="button" value="setValue" onclick="setValue();" />
             <br />
             id=myAreaText
             <textarea id="myAreaText" value=""></textarea>
             <br />
             id=myDiv
             <div id="myDiv"></div>
          </body>
          </html>
          7.13.11 toDescriptiveString函數
          toDescriptiveString函數是帶debug信息的toString,第一個為將要debug的對象,第二個參數為處理等級。等級如下:
          0:單行調試
          1:不分析子元素的多行調試
          2: 最多分析到第二層子元素的多行調試
          調用方法如下:
          <input type="text" id="text">
          dwr.util.toDescriptiveString("text",0);
          7.13.12 useLoadingMessage函數
          useLoadingMessage函數作用是當發出ajax請求后,頁面顯示的提示等待信息,調用方法如下:
          function searchUser(){   
          var loadinfo = "loading....."  
          try{   
               regUser.queryAllUser(userList);   
               dwr.util.useLoadingMessage(loadinfo);           
          }catch(e){   
            
          }   
          }

          以上介紹了DWR的工用原理就實現方法,同時介紹了兩個工具包的常用函數的用法,有關DWR的在項目中的具體應用,將在后面的在線書店電子商務系統中詳細介紹,本節不在介紹。

          posted on 2009-04-22 15:13 單飛 閱讀(884) 評論(0)  編輯  收藏

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


          網站導航:
           
          主站蜘蛛池模板: 称多县| 海兴县| 丰县| 湖南省| 广汉市| 尤溪县| 博客| 龙江县| 桦甸市| 马龙县| 平谷区| 朔州市| 台州市| 大城县| 博野县| 登封市| 呼和浩特市| 革吉县| 祁阳县| 乐平市| 临夏县| 赤壁市| 金溪县| 革吉县| 东海县| 邻水| 武穴市| 嘉善县| 安仁县| 大洼县| 濮阳市| 澄江县| 英超| 泰来县| 瑞昌市| 莱阳市| 洛阳市| 阳东县| 开封县| 偏关县| 固安县|