DWR-util.js包工具方法

util.js包含一些有用的函数function,用于在客户端页面调用.


主要功能如下:

代码

1、$() 获得页面参数值   
2、addOptions and removeAllOptions 初始化下拉框   
3、addRows and removeAllRows   填充表格   
4、getText   取得text属性值   
5、getValue 取得form表单值   
6、getValues 取得form多个值   
7、onReturn     
8、selectRange   
9、setValue   
10、setValues   
11、toDescriptiveString   
12、useLoadingMessage   
13、Submission box  

代码

1、$()函数   
   IE5.0 不支持   
   $ = document.getElementById   
   取得form表单值   
   var name = $("name");  

代码

a、如果你想在更新select 时,想保存原来的数据,即在原来的select中添加新的option:   
     var sel = DWRUtil.getValue(id);   
     DWRUtil.removeAllOptions(id);   
     DWRUtil.addOptions(id,...);   
     DWRUtil.setValue(id,sel);   
     demo:比如你想添加一个option:“--请选择--”   
DWRUtil.addOptions(id,["--请选择--"]);   
  
    DWRUtil.addOptions()有5中方式:  

代码

@ Simple Array Example: 简单数组   
     例如:   
     Array array = new Array[ 'Africa', 'America', 'Asia', 'Australasia', 'Europe' ];   
     DWRUtil.addOptions("demo1",array);  

代码

@ Simple Object Array Example 简单数组,元素为beans   
       这种情况下,你需要指定要显示 beans 的 property 以及 对应的 bean 值   
       例如:   
      

    function processCallback(provinces){
          //provinces是一个数组,是远程bean的返回值List<String>
          var arrayObject=new Array();
          for(var i=0;i<provinces.length;i++)
            {
              arrayObject[i]={value:provinces[i],name:i};
            }
          dwr.util.addOptions("provinceSel",arrayObject,"name","value");
       }
        其中provinceSel指向select的id,name指向option中对应key,value指向对应下拉框中value.  

代码

@ Advanced Object Array Example 基本同上   
     DWRUtil.addOptions( "demo3",   
                 [{ name:'Africa', id:'AF' },   
                  { name:'America', id:'AM' },   
                  { name:'Asia', id:'AS' },   
                  { name:'Australasia', id:'AU' },   
                  { name:'Europe', id:'EU' }   
         ],'id','name');  

代码

@ Map Example 用制定的map来填充 options:   
        如果 server 返回 Map,呢么这样处理即可:   
        DWRUtil.addOptions( "demo3",map);   
        其中 value 对应 map keys,text 对应 map values;  

代码

@ <ul> and <ol> list editing   
        
        DWRUtil.addOptions() 函数不但可以填出select,并可以填出<ul>和<ol>这样的html元素  

3、addRows and removeAllRows 填充表格

DWR 提供2个函数来操作 table;

----------------------------

DWRUtil.addRows(); 添加行

----------------------------

DWRUtil.removeAllRows(id); 删除指定id的table

----------------------------

下面着重看一下 addRows() 函数:

DWRUtil.addRows(id, array, cellfuncs, [options]);

其中id 对应 table 的 id(更适合tbody,推荐使用 tbody)

array 是server端服务器的返回值,比如list,map等等

cellfuncs 及用返回值来填充表格

[options] 用来设置表格样式,它有2个内部函数来设置单元格样式(rowCreator、cellCreator)。

比如: server端返回list,而list中存放的是下面这个 bean:

代码

       public class Person {   
private String name;   
private Integer id;   
private String address;   
public void set(){……}   
public String get(){……}   
      }  

下面用 DWRUtil.addRows();

代码

 function processCallback(data){
      
      var cellfuncs = [   
         function(data){return data.id;},   
         function(data){return data.name;},   
         function(data){return data.address;},   
         function(data){
         var idd = data.id;
    var delButton = document.createElement("input");
     delButton.setAttribute('type','button');
     delButton.setAttribute('onclick', 'delPerson('+ idd +')'); 
             delButton.setAttribute("id","delete");   
             delButton.setAttribute("value","delete");
             return delButton;   
         },   
         function(data){
             var idd = data.id;   
             var editButton = document.createElement("input");   
             editButton.setAttribute('type','button');
     editButton.setAttribute('onclick', 'editPerson('+ idd +')');
             editButton.setAttribute("id","edit");   
             editButton.setAttribute("value","edit");               
             return editButton;   
         }   
     ];
       DWRUtil.removeAllRows('body');   
        DWRUtil.addRows("body", data, cellfuncs,{   
      rowCreator:function(options) {   
          var row = document.createElement("tr");   
          var index = options.rowIndex * 50;
          row.setAttribute("id",options.rowData.id);
          row.style.collapse = "separate";   
          row.style.color = "rgb(" + index + ",0,0)";
         
          return row;   
      },   
      cellCreator:function(options) {   
          var td = document.createElement("td");   
          var index = 255 - (options.rowIndex * 50);   
          //td.style.backgroundColor = "rgb(" + index + ",255,255)";   
          td.style.backgroundColor = "menu";   
          td.style.fontWeight = "bold";   
          td.style.align = "center";
          
          return td;   
      }          
     });
   // document.getElementById("table").style.display = "none";   
     }
4、getText 取得text属性值

DWRUtil.getText(id): 用来获得 option 中的文本

比如:

代码

       <select id="select">  
<option   value="1"> 苹果 </option>  
<option   value="2" select> 香蕉 </option>  
<option   value="3"> 鸭梨 </option>  
       </select>  

调用 DWRUtil.getText("select"); 将返回 "香蕉" 字段;

DWRUtil.getText(id);仅仅是用来获得 select 文本值,其他不适用。

5、DWRUtil.getValue(id): 用来获得 form 表单值

有如下几种情况:

代码

      Text area (id="textarea"): DWRUtil.getValue("textarea")将返回 Text area的值;   
Selection list (id="select"): DWRUtil.getValue("select") 将返回 Selection list 的值;   
Text input (id="text"): DWRUtil.getValue("text") 将返回 Text input 的值;   
Password input (id="password"): DWRUtil.getValue("text") 将返回 Password input 的值;   
Form button (id="formbutton"): DWRUtil.getValue("formbutton") 将返回 Form button 的值;   
Fancy button (id="button"): DWRUtil.getValue("formbutton") 将返回 Fancy button 的值;  

6、getValues 取得form多个值

批量获得页面表单的值,组合成数组的形式,返回 name/value;

例如: form():

代码

     <input type="textarea" id="textarea" value="1111"/>  
      <input type="text" id="text" value="2222"/>  
      <input type="password" id= "password" value="3333"/>  
      <select id="select">  
<option   value="1"> 苹果 </option>  
<option   value="4444" select> 香蕉 </option>  
<option   value="3"> 鸭梨 </option>  
       </select>  
      <input type="button" id="button" value="5555"/>  
        
      那么: DWRUtil.getValues({textarea:null,select:null,text:null,password:null,button:null})   
      将返回   ^^^^^^^^^^^^^^^^{textarea:1111,select:4444,text:2222,password:3333,button:5555}  

7、DWRUtil.onReturn 防止当在文本框中输入后,直接按回车就提交表单。

<input type="text" onkeypress="DWRUtil.onReturn(event, submitFunction)"/>

<input type="button" onclick="submitFunction()"/>

8、DWRUtil.selectRange(ele, start, end);

在一个input box里选一个范围

代码

DWRUtil.selectRange("sel-test", $("start").value, $("end").value);   
  
比如:<input type="text" id="sel-test" value="012345678901234567890">   
  
DWRUtil.selectRange("sel-test", 2, 15);  

9、DWRUtil.setValue(id,value);

为指定的id元素,设置一个新值;

10、DWRUtil.setValues({

name: "fzfx88",

password: "1234567890"

}

); 同上,批量更新表单值.

/***********************************************************************/

11、DWRUtil.toDescriptiveString()

带debug信息的toString,第一个为将要debug的对象,第二个参数为处理等级。等级如下:

0: Single line of debug 单行调试

1: Multi-line debug that does not dig into child objects 不分析子元素的多行调试

2: Multi-line debug that digs into the 2nd layer of child objects 最多分析到第二层子元素的多行调试

<input type="text" id="text">

DWRUtil。toDescriptiveString("text",0);

/******************************************************************************/

12、DWRUtil.useLoadingMessage();

当发出ajax请求后,页面显示的提示等待信息;

代码

    function searchUser(){   
var loadinfo = "loading....."  
try{   
     regUser.queryAllUser(userList);   
     DWRUtil.useLoadingMessage(loadinfo);           
}catch(e){   
  
}   
    }


-----------------------------------------------------------------------------------------
2008-05-20 16:58功能函数:

$()
DWRUtil.getText(id)
DWRUtil.getValue(id)
DWRUtil.setValue(id, value)
DWRUtil.getValues()
DWRUtil.setValues()
DWRUtil.addOptions and DWRUtil.removeAllOptions
DWRUtil.addRows and DWRUtil.removeAllRows
DWRUtil.onReturn
DWRUtil.toDescriptiveString
DWRUtil.useLoadingMessage
修补浏览器事件
util.js包含了一些工具函数来帮助你用javascript数据(例如从服务器返回的数据)来更新你的web页面。

你可以在DWR以外使用它,因为它不依赖于DWR的其他部分。

4个基本的操作页面的函数:getValue[s]()和setValue[s]()可以操作大部分HTML元素除了table,list和image。getText()可以操作select list。

要修改table可以用addRows()和removeAllRows()。要修改列表(select列表和ul,ol列表)可以用addOptions()和removeAllOptions()。

还有一些其他功能不是DWRUtil的一部分。但它们也很有用,它们可以用来解决一些小问题,但是它们不是对于所有任都通用的。

1、$()
   $() 函数(它是合法的Javascript名字) 是从Protoype偷来的主意。大略上的讲: $ = document.getElementById。 因为在Ajax程序中,你会需要写很多这样的语句,所以使用 $() 会更简洁。
   通过指定的id来查找当前HTML文档中的元素,如果传递给它多个参数,它会返回找到的元素的数组。所有非String类型的参数会被原封不动的返回。这个函数的灵感来至于prototype库,但是它可以在更多的浏览器上运行。
   从技术角度来讲他在IE5.0中是不能使用的,因为它使用了Array.push,尽管如此通常它只是用来同engine.js一起工作。如果你不想要engine.js并且在IE5.0中使用,那么你最好为Array.push找个替代品。

2、DWRUtil.getText(id)
   getText(id)和getValue(id)很相似。它是为select列表设计的。你可能需要取得显示的文字,而不是当前选项的值。
   例子:getahead.ltd.uk/dwr/browser/util/gettext

3、DWRUtil.getValue(id)
   DWRUtil.getValue(id)是 setValue()对应的"读版本"。它可以从HTML元素中取出其中的值,而你不用管这个元素是select列表还是一个div。
   这个函数能操作大多数HTML元素包括select(获取当前选项的值而不是文字)、input元素(包括textarea)、div和span。

4、DWRUtil.setValue(id, value)
   DWRUtil.setValue(id, value)根据第一个参数中指定的id找到相应元素,并根据第二个参数改变其中的值。
   这个函数能操作大多数HTML元素包括select(设置当前选项的值而不是文字)、input元素(包括textarea)、div和span。

5、DWRUtil.getValues()
   getValues()和getValue()非常相似,除了输入的是包含name/value对的javascript对象。name是HTML元素的ID,value会被更改为这些ID对象元素的内容。这个函数不会返回对象,它只更改传递给它的值。

【基于Form的getValues()】
   从DWR1.1开始getValues()可以传入一个HTML元素(一个DOM对象或者id字符串),然后从它生成一个reply对象。例子:getahead.ltd.uk/dwr/browser/util/getvalues

6、DWRUtil.setValues()
   setValues()和setValue()非常相似,除了输入的是包含name/value对的javascript对象。name是HTML元素的ID,value是你想要设置给相应的元素的值。

7、DWRUtil.addOptions and DWRUtil.removeAllOptions
【生成列表】

   DWR的一个常遇到的任务就是根据选项填充选择列表。下面的例子就是根据输入填充列表。

   下面将介绍 DWRUtil.addOptions() 的几种是用方法。

   如果你希望在你更新了select以后,它仍然保持运来的选择,你要像下面这样做:

   var sel = DWRUtil.getValue(id);
   DWRUtil.removeAllOptions(id);
   DWRUtil.addOptions(id, ...);
   DWRUtil.setValue(id, sel);如果你想加入一个初始的"Please select..." 选项那么你可以直接加入下面的语句:

   DWRUtil.addOptions(id, \["Please select ..."]);然后再下面紧接着加入你真正的选项数据。

【DWRUtil.addOptions有5种模式】
  
   简单数组: DWRUtil.addOptions(selectid, array) 会创建一堆option,每个option的文字和值都是数组元素中的值。

   简单对象数组 (指定text): DWRUtil.addOptions(selectid, data, prop) 用每个数组元素创造一个option,option的值和文字都是在prop中指定的对象的属性。

   高级对象数组 (指定text和value值): DWRUtil.addOptions(selectid, array, valueprop, textprop) 用每个数组元素创造一个option,option的值是对象的valueprop属性,option的文字是对象的textprop属性。

   对象: DWRUtil.addOptions(selectid, map, reverse)用每个属性创建一个option。对象属性名用来作为option的值,对象属性值用来作为属性的文字,这听上去有些不对。但是事实上却是正确的方式。如果reverse参数被设置为true,那么对象属性值用来作为选项的值。

   对象的Map: DWRUtil.addOptions(selectid, map, valueprop, textprop) 用map中的每一个对象创建一个option。用对象的valueprop属性做为option的value,用对象的textprop属性做为 option的文字。

   ol 或 ul 列表: DWRUtil.addOptions(ulid, array) 用数组中的元素创建一堆li元素,他们的innerHTML是数组元素中的值。这种模式可以用来创建ul和ol列表。
  
   例子:getahead.ltd.uk/dwr/browser/lists

8、DWRUtil.addRows and DWRUtil.removeAllRows
【生成Table】

   DWR通过这两个函数来帮你操作table: DWRUtil.addRows() 和 DWRUtil.removeAllRows() 。这个函数的第一个参数都是table、tbody、thead、tfoot的id。一般来说最好使用tbody,因为这样可以保持你的header和 footer行不变,并且可以防止Internet Explorer的bug。

【DWRUtil.removeAllRows()】
   语法:
DWRUtil.removeAllRows(id);
   描述:
通过id删除table中所有行。
   参数:
id: table元素的id(最好是tbody元素的id)

【DWRUtil.addRows()】
   语法:
DWRUtil.addRows(id, array, cellfuncs, [options]);
   描述:
向指定id的table元素添加行。它使用数组中的每一个元素在table中创建一行。然后用cellfuncs数组中的没有函数创建一个列。单元格是依次用cellfunc根据没有数组中的元素创建出来的。

   DWR1.1开始,addRows()也可以用对象做为数据。如果你用一个对象代替一个数组来创建单元格,这个对象会被传递给cell函数。

   你可以写一些像这样的伪代码:

for each member in array
    for each function in cellfuncs
         create cell from cellfunc(array[i])

   参数:
id: table元素的id(最好是tbody元素的id)
array: 数组(DWR1.1以后可以是对象),做为更新表格数据。
cellfuncs: 函数数组,从传递过来的行数据中提取单元格数据。
options: 一个包含选项的对象(见下面)
   高级选项:
rowCreator: 一个用来创建行的函数(例如,你希望tr加个css). 默认是返回一个document.createElement("tr")
cellCreator: 一个用来创建单元格的函数(例如,用th代替td). 默认返回一个document.createElement("td")

rowData: the element value from the array (the same for all cells in a row)
rowIndex: the key (if map) or index (if array) from the collection
rowNum: The row number counting from 0 in this section (so if you are using tbody, it counts rows in the tbody and not the whole table)
data: The 'computed' data value for the cell (cellCreators only)
cellNum: The cell number that we are altering counting from 0 (cellCreators only

   例子:getahead.ltd.uk/dwr/browser/tables

【动态编辑表格(Dynamically Editing a Table)】

   例子:getahead.org/dwr/examples/table

9、DWRUtil.onReturn
   当按下return键时,得到通知。

   当表单中有input元素,触发return键会导致表单被提交。当使用Ajax时,这往往不是你想要的。而通常你需要的触发一些Javscript。

   不幸的是不同的浏览器处理这个事件的方式不一样。所以DWRUtil.onReturn修复了这个差异。如果你需要一个同表单元素中按回车相同的特性,你可以用这样代码实现:

js 代码
&lt;input type="text" onkeypress="DWRUtil.onReturn(event, submitFunction)">   
&lt;input type="button" onclick="submitFunction()"> 

   你也可以使用onkeypress事件或者onkeydown事件,他们做同样的事情。

   一般来说DWR不是一个Javascript类库,所以它应该试图满足这个需求。不管怎样,这是在使用Ajax过程中一个很有用函数。

【onSubmit】
   这个函数的工作原理是onSubmit()事件只存在于form元素上。

   例子:getahead.ltd.uk/dwr/browser/util/onreturn

10、DWRUtil.toDescriptiveString
    DWRUtil.toDescriptiveString()函数比默认的toString()更好。第一个参数是要调试的对象,第二个参数是可选的,用来指定内容深入的层次:

0: 单行调试
1: 多行调试,但不深入到子对象。
2: 多行调试,深入到第二层子对象
以此类推。一般调试到第二级是最佳的。
    还有第三个参数,定义初始缩进。这个函数不应该被用于调式程序之外,因为以后可能会有变化。

11、DWRUtil.useLoadingMessage
    设置一个Gmail风格的加载信息。所有演示页面
● dynamic text getahead.ltd.uk/dwr/examples/text
● selection lists getahead.ltd.uk/dwr/examples/lists
● live tables getahead.ltd.uk/dwr/examples/table
● live forms getahead.ltd.uk/dwr/examples/form
● dynamic validation getahead.ltd.uk/dwr/examples/validation
● address entry
    都使用了GMail风格的加载消息。

    这个方法将来可能被废弃,因为这个实现实在太专断了。为什么是红色,为什么在右上角,等等。唯一的真正答案就是:抄袭GMail。这里的建议是以本页面中的代码为模板,根据你的需求自定义。

    你必须在页面加载以后调用这个方法(例如,不要在onload()事件触发之前调用),因为它要创建一个隐藏的div来容纳消息。

    最简单的做法时在onload事件中调用DWRUtil.useLoadingMessage,像这样:

js 代码
function init() {   
    DWRUtil.useLoadingMessage();   

    可能有些情况下你是不能容易的编辑header和body标签(如果你在使用CMS,这很正常),在这样的情况下你可以这样做:

js 代码
function init() {   
DWRUtil.useLoadingMessage();   
}   
  
if (window.addEventListener) {   
window.addEventListener("load", init, false);   
}   
else if (window.attachEvent) {   
window.attachEvent("onload", init);   
}   
else {   
window.onload = init;   

    下面这些是这个函数的代码,它对于你要实现自己的加载消息很有用。这个函数的主要内容是动态创建一个div(id是disabledZone)来容纳消息。重要的代码是当远程调用时使它显示和隐藏:

js 代码
DWREngine.setPreHook(function() {   
$('disabledZone').style.visibility = 'visible';   
});   
DWREngine.setPostHook(function() {   
$('disabledZone').style.visibility = 'hidden';   
});   
This is fairly simple and makes it quite easy to implement your own "loading" message.   
  
function useLoadingMessage(message) {   
var loadingMessage;   
if (message) loadingMessage = message;   
else loadingMessage = "Loading";   
  
DWREngine.setPreHook(function() {   
    var disabledZone = $('disabledZone');   
    if (!disabledZone) {   
      disabledZone = document.createElement('div');   
      disabledZone.setAttribute('id', 'disabledZone');   
      disabledZone.style.position = "absolute";   
      disabledZone.style.zIndex = "1000";   
      disabledZone.style.left = "0px";   
      disabledZone.style.top = "0px";   
      disabledZone.style.width = "100%";   
      disabledZone.style.height = "100%";   
      document.body.appendChild(disabledZone);   
      var messageZone = document.createElement('div');   
      messageZone.setAttribute('id', 'messageZone');   
      messageZone.style.position = "absolute";   
      messageZone.style.top = "0px";   
      messageZone.style.right = "0px";   
      messageZone.style.background = "red";   
      messageZone.style.color = "white";   
      messageZone.style.fontFamily = "Arial,Helvetica,sans-serif";   
      messageZone.style.padding = "4px";   
      disabledZone.appendChild(messageZone);   
      var text = document.createTextNode(loadingMessage);   
      messageZone.appendChild(text);   
    }   
    else {   
      $('messageZone').innerHTML = loadingMessage;   
      disabledZone.style.visibility = 'visible';   
    }   
});   
  
DWREngine.setPostHook(function() {   
    $('disabledZone').style.visibility = 'hidden';   
});   

    下面的做法能简单的使用有加载消息图片:

js 代码
function useLoadingImage(imageSrc) {   
var loadingImage;   
if (imageSrc) loadingImage = imageSrc;   
else loadingImage = "ajax-loader.gif";   
DWREngine.setPreHook(function() {   
    var disabledImageZone = $('disabledImageZone');   
    if (!disabledImageZone) {   
      disabledImageZone = document.createElement('div');   
      disabledImageZone.setAttribute('id', 'disabledImageZone');   
      disabledImageZone.style.position = "absolute";   
      disabledImageZone.style.zIndex = "1000";   
      disabledImageZone.style.left = "0px";   
      disabledImageZone.style.top = "0px";   
      disabledImageZone.style.width = "100%";   
      disabledImageZone.style.height = "100%";   
      var imageZone = document.createElement('img');   
      imageZone.setAttribute('id','imageZone');   
      imageZone.setAttribute('src',imageSrc);   
      imageZone.style.position = "absolute";   
      imageZone.style.top = "0px";   
      imageZone.style.right = "0px";   
      disabledImageZone.appendChild(imageZone);   
      document.body.appendChild(disabledImageZone);   
    }   
    else {   
      $('imageZone').src = imageSrc;   
      disabledImageZone.style.visibility = 'visible';   
    }   
});   
DWREngine.setPostHook(function() {   
    $('disabledImageZone').style.visibility = 'hidden';   
});   

    然后你就可以这样使用:useLoadingImage("images/loader.gif");


12、修补浏览器事件
    如果你创建了一个DOM元素,然后用addAttribute在这个元素上创建了一个事件,那么他们不能被正常的触发。你可以使用下面的脚本来遍历一个DOM树,并重新为他们绑定事件,这样他们就能正常的触发了。

    把'click'改成你希望的事件。

js 代码
DWREngine._fixExplorerEvents = function(obj) {      
for (var i = 0; i < obj.childNodes.length; i++) {   
    var childObj = obj.childNodes [i];   
    if (childObj.nodeValue == null) {   
      var onclickHandler = childObj.getAttribute('onclick');   
      if (onclickHandler != null) {   
        childObj.removeAttribute('onclick');   
        // If using prototype:   
        //   Event.observe(childObj, 'click', new Function(onclickHandler));   
        // Otherwise (but watch out for memory leaks):   
        if (element.attachEvent) {   
          element.attachEvent("onclick", onclickHandler);   
        }   
        else {   
          element.addEventListener("click", onclickHandler, useCapture);   
        }   
      }   
      DWREngine._fixExplorerEvents(childObj);   
    }   
}
}


13.

DWRUtil.selectRange("sel-test", , )

现有输入框 <input type=text id="sel-test" value="0123456789">, 则点击按钮时4567被选中: 0123456789
 


----------------------------------------------------------------------------------------------

2008-04-11 20:161、$() 获得页面参数值   
2、addOptions and removeAllOptions 初始化下拉框   
3、addRows and removeAllRows 填充表格   
4、getText 取得text属性值   
5、getValue 取得form表单值   
6、getValues 取得form多个值   
7、onReturn     
8、selectRange   
9、setValue   
10、setValues   
11、toDescriptiveString   
12、useLoadingMessage   
13、Submission box
1、$() 获得页面参数值2、addOptions and removeAllOptions 初始化下拉框3、addRows and removeAllRows 填充表格4、getText 取得text属性值5、getValue 取得form表单值6、getValues 取得form多个值7、onReturn 8、selectRange9、setValue10、setValues11、toDescriptiveString12、useLoadingMessage13、Submission box


*********************************************************************
//////////////////////http://blog.163.com/fzfx888//////////////////////////
*********************************************************************

Java代码
1、$()函数   
IE5.0 不支持   
$ = document.getElementById   
取得form表单值   
var name = $("name");
1、$()函数 IE5.0 不支持 $ = document.getElementById 取得form表单值 var name = $("name");

***********************************************************************************
///////////////////////////////////////////////////////////////////////////////////
***********************************************************************************
2、用于填充 select 下拉框 option

Java代码
a、如果你想在更新select 时,想保存原来的数据,即在原来的select中添加新的option:   
    var sel = DWRUtil.getValue(id);   
    DWRUtil.removeAllOptions(id);   
    DWRUtil.addOptions(id,...);   
    DWRUtil.setValue(id,sel);   
    demo:比如你想添加一个option:“--请选择--”   
DWRUtil.addOptions(id,["--请选择--"]);    
  
   DWRUtil.addOptions()有5中方式:
a、如果你想在更新select 时,想保存原来的数据,即在原来的select中添加新的option:     var sel = DWRUtil.getValue(id);     DWRUtil.removeAllOptions(id);     DWRUtil.addOptions(id,...);     DWRUtil.setValue(id,sel);     demo:比如你想添加一个option:“--请选择--” DWRUtil.addOptions(id,["--请选择--"]);     DWRUtil.addOptions()有5中方式:


Java代码
@ Simple Array Example: 简单数组   
    例如:   
    Array array = new Array[ 'Africa', 'America', 'Asia', 'Australasia', 'Europe' ];   
    DWRUtil.addOptions("demo1",array);
@ Simple Array Example: 简单数组      例如:      Array array = new Array[ 'Africa', 'America', 'Asia', 'Australasia', 'Europe' ];      DWRUtil.addOptions("demo1",array);


Java代码
@ Simple Object Array Example 简单数组,元素为beans   
      这种情况下,你需要指定要显示 beans 的 property 以及 对应的 bean 值   
      例如:   
       public class Person {   
     private String name;   
     private Integer id;   
     pirvate String address;   
     public void set(){……}   
     public String get(){……}   
       }   
       DWRUtil.addOptions("demo2",array,'id','name');   
       其中id指向及bean的id属性,在optiong中对应value,name指向bean的name属性,对应下拉框中显示的哪个值.
@ Simple Object Array Example 简单数组,元素为beans      这种情况下,你需要指定要显示 beans 的 property 以及 对应的 bean 值      例如:       public class Person { private String name; private Integer id; pirvate String address; public void set(){……} public String get(){……}       }       DWRUtil.addOptions("demo2",array,'id','name');       其中id指向及bean的id属性,在optiong中对应value,name指向bean的name属性,对应下拉框中显示的哪个值.


Java代码
@ Advanced Object Array Example 基本同上   
    DWRUtil.addOptions( "demo3",    
                [{ name:'Africa', id:'AF' },   
                 { name:'America', id:'AM' },   
                 { name:'Asia', id:'AS' },   
                 { name:'Australasia', id:'AU' },   
                 { name:'Europe', id:'EU' }   
        ],'id','name');
@ Advanced Object Array Example 基本同上 DWRUtil.addOptions( "demo3",                 [{ name:'Africa', id:'AF' },                 { name:'America', id:'AM' },                 { name:'Asia', id:'AS' },                 { name:'Australasia', id:'AU' },                 { name:'Europe', id:'EU' }   ],'id','name');


Java代码
@ Map Example 用制定的map来填充 options:   
       如果 server 返回 Map,呢么这样处理即可:   
       DWRUtil.addOptions( "demo3",map);   
       其中 value 对应 map keys,text 对应 map values;
@ Map Example 用制定的map来填充 options:       如果 server 返回 Map,呢么这样处理即可:       DWRUtil.addOptions( "demo3",map);       其中 value 对应 map keys,text 对应 map values;


Java代码
@ <ul> and <ol> list editing   
        
       DWRUtil.addOptions() 函数不但可以填出select,开可以填出<ul>和<ol>这样的heml元素
@ <ul> and <ol> list editing            DWRUtil.addOptions() 函数不但可以填出select,开可以填出<ul>和<ol>这样的heml元素

***********************************************************************************
///////////////////////////////[email protected]//////////////////////////////////////
***********************************************************************************
3、addRows and removeAllRows 填充表格
DWR 提供2个函数来操作 table;
----------------------------
DWRUtil.addRows(); 添加行
----------------------------
DWRUtil.removeAllRows(id); 删除指定id的table
----------------------------
下面着重看一下 addRows() 函数:

DWRUtil.addRows(id, array, cellfuncs, [options]);
其中id 对应 table 的 id(更适合tbodye,推荐使用 tbodye)
array 是server端服务器的返回值,比如list,map等等
cellfuncs 及用返回值来天春表格
[options] 用来设置表格样式,它有2个内部函数来设置单元格样式(rowCreator、cellCreator)。

比如: server端返回list,而list中存放的是下面这个 bean:

Java代码
      public class Person {   
private String name;   
private Integer id;   
pirvate String address;   
public void set(){……}   
public String get(){……}   
     }
        public class Person { private String name; private Integer id; pirvate String address; public void set(){……} public String get(){……}       }

下面用 DWRUtil.addRows();
/******************************************************************************/
/****************** ***********[email protected]********************************/
/*********************************************************************************/


Java代码
   function userList(data){   
    //var delButton = "<input type='button'/>";   
    //var editButton = "<input type='button'/>";   
    var cellfuncs = [   
        function(data){return data.id;},   
        function(data){return data.userName;},   
        function(data){return data.userTrueName;},   
        function(data){return data.birthday;},   
        function(data){   
        var idd = data.id;   
var delButton = document.createElement("<INPUT TYPE='button' onclick='delPerson("+ idd +")'>");   
            delButton.setAttribute("id","delete");   
            delButton.setAttribute("value","delete");   
            return delButton;   
        },   
        function(data){   
            var idd = data.id;   
            var editButton = document.createElement("<INPUT TYPE='button' onclick='editPerson("+ idd +")'>");   
            editButton.setAttribute("name","edit");   
            editButton.setAttribute("value","edit");               
            return editButton;   
        }   
    ];   
    DWRUtil.removeAllRows('tabId');    
    DWRUtil.addRows('tabId', data,cellfuncs,{   
    rowCreator:function(options) {   
        var row = document.createElement("tr");   
        var index = options.rowIndex * 50;   
        row.setAttribute("id",options.rowData.id);   
        row.style.collapse = "separate";   
        row.style.color = "rgb(" + index + ",0,0)";   
        return row;   
    },   
    cellCreator:function(options) {   
        var td = document.createElement("td");   
        var index = 255 - (options.rowIndex * 50);   
        //td.style.backgroundColor = "rgb(" + index + ",255,255)";   
        td.style.backgroundColor = "menu";   
        td.style.fontWeight = "bold";   
        td.style.align = "center";   
        return td;   
    }          
    });   
    document.getElementById("bt").style.display = "none";   
     }
   function userList(data){    //var delButton = "<input type='button'/>";    //var editButton = "<input type='button'/>"; var cellfuncs = [   function(data){return data.id;},   function(data){return data.userName;},   function(data){return data.userTrueName;},   function(data){return data.birthday;},   function(data){   var idd = data.id;var delButton = document.createElement("<INPUT TYPE='button' onclick='delPerson("+ idd +")'>");    delButton.setAttribute("id","delete");    delButton.setAttribute("value","delete");    return delButton;   },   function(data){    var idd = data.id;    var editButton = document.createElement("<INPUT TYPE='button' onclick='editPerson("+ idd +")'>");    editButton.setAttribute("name","edit");    editButton.setAttribute("value","edit");       return editButton;   } ]; DWRUtil.removeAllRows('tabId');   DWRUtil.addRows('tabId', data,cellfuncs,{ rowCreator:function(options) {    var row = document.createElement("tr");    var index = options.rowIndex * 50;    row.setAttribute("id",options.rowData.id);    row.style.collapse = "separate";    row.style.color = "rgb(" + index + ",0,0)";    return row; }, cellCreator:function(options) {    var td = document.createElement("td");    var index = 255 - (options.rowIndex * 50);    //td.style.backgroundColor = "rgb(" + index + ",255,255)";    td.style.backgroundColor = "menu";    td.style.fontWeight = "bold";    td.style.align = "center";    return td; }    }); document.getElementById("bt").style.display = "none";     }

待续…………………………………………
/********************************************************************************/
/***********************QQ: 171505924 Gump **************************************/
/********************************************************************************/
4、getText 取得text属性值

DWRUtil.getText(id): 用来获得 option 中的文本
比如:

Java代码
      <select id="select">   
<option value="1"> 苹果 </option>   
<option value="2" select> 香蕉 </option>   
<option value="3"> 鸭梨 </option>   
      </select>
       <select id="select"> <option value="1"> 苹果 </option> <option value="2" select> 香蕉 </option> <option value="3"> 鸭梨 </option>       </select>

调用 DWRUtil.getText("select"); 将返回 "香蕉" 字段;
DWRUtil.getText(id);仅仅是用来获得 select 文本值,其他不适用。
/******************************************************************************/
/******************************************************************************/
/******************************************************************************/

5、DWRUtil.getValue(id): 用来获得 form 表单值

有如下几种情况:

Java代码
       Text area (id="textarea"): DWRUtil.getValue("textarea")将返回 Text area的值;   
Selection list (id="select"): DWRUtil.getValue("select") 将返回 Selection list 的值;   
Text input (id="text"): DWRUtil.getValue("text") 将返回 Text input 的值;   
Password input (id="password"): DWRUtil.getValue("text") 将返回 Password input 的值;   
Form button (id="formbutton"): DWRUtil.getValue("formbutton") 将返回 Form button 的值;   
Fancy button (id="button"): DWRUtil.getValue("formbutton") 将返回 Fancy button 的值;
        Text area (id="textarea"): DWRUtil.getValue("textarea")将返回 Text area的值; Selection list (id="select"): DWRUtil.getValue("select") 将返回 Selection list 的值; Text input (id="text"): DWRUtil.getValue("text") 将返回 Text input 的值; Password input (id="password"): DWRUtil.getValue("text") 将返回 Password input 的值; Form button (id="formbutton"): DWRUtil.getValue("formbutton") 将返回 Form button 的值; Fancy button (id="button"): DWRUtil.getValue("formbutton") 将返回 Fancy button 的值;

/******************************************************************************/
/******************************************************************************/
/******************************************************************************/

6、getValues 取得form多个值
批量获得页面表单的值,组合成数组的形式,返回 name/value;

例如: form():

Java代码
     <input type="textarea" id="textarea" value="1111"/>   
      <input type="text" id="text" value="2222"/>   
      <input type="password" id= "password" value="3333"/>   
      <select id="select">   
<option value="1"> 苹果 </option>   
<option value="4444" select> 香蕉 </option>   
<option value="3"> 鸭梨 </option>   
      </select>   
      <input type="button" id="button" value="5555"/>   
        
     那么: DWRUtil.getValues({textarea:null,select:null,text:null,password:null,button:null})   
     将返回 ^^^^^^^^^^^^^^^^{textarea:1111,select:4444,text:2222,password:3333,button:5555}
     <input type="textarea" id="textarea" value="1111"/>      <input type="text" id="text" value="2222"/>      <input type="password" id= "password" value="3333"/>      <select id="select"> <option value="1"> 苹果 </option> <option value="4444" select> 香蕉 </option> <option value="3"> 鸭梨 </option>       </select>      <input type="button" id="button" value="5555"/>            那么: DWRUtil.getValues({textarea:null,select:null,text:null,password:null,button:null})      将返回 ^^^^^^^^^^^^^^^^{textarea:1111,select:4444,text:2222,password:3333,button:5555}


/******************************************************************************/
/******************************************************************************/
/******************************************************************************/

7、DWRUtil.onReturn 防止当在文本框中输入后,直接按回车就提交表单。

<input type="text" onkeypress="DWRUtil.onReturn(event, submitFunction)"/>
<input type="button" onclick="submitFunction()"/>

/******************************************************************************/
/******************************************************************************/
/******************************************************************************/

8、DWRUtil.selectRange(ele, start, end);

在一个input box里选一个范围

Java代码
DWRUtil.selectRange("sel-test", $("start").value, $("end").value);   
  
比如:<input type="text" id="sel-test" value="012345678901234567890">   
  
DWRUtil.selectRange("sel-test", 2, 15);
      DWRUtil.selectRange("sel-test", $("start").value, $("end").value);      比如:<input type="text" id="sel-test" value="012345678901234567890">      DWRUtil.selectRange("sel-test", 2, 15);
结果 文本框中的值"2345678901234"将被选中'

/******************************************************************************/
/******************************************************************************/
/******************************************************************************/

9、DWRUtil.setValue(id,value);
为指定的id元素,设置一个新值;
/******************************************************************************/
10、DWRUtil.setValues({
name: "fzfx88",
password: "1234567890"
}
); 同上,批量更新表单值.
/******************************************************************************/

11、DWRUtil.toDescriptiveString()

带debug信息的toString,第一个为将要debug的对象,第二个参数为处理等级。等级如下:

0: Single line of debug 单行调试
1: Multi-line debug that does not dig into child objects 不分析子元素的多行调试
2: Multi-line debug that digs into the 2nd layer of child objects 最多分析到第二层子元素的多行调试

<input type="text" id="text">
DWRUtil。toDescriptiveString("text",0);
/******************************************************************************/

12、DWRUtil.useLoadingMessage();
当发出ajax请求后,页面显示的提示等待信息;


Java代码
   function searchUser(){   
var loadinfo = "loading....."  
try{   
    regUser.queryAllUser(userList);   
    DWRUtil.useLoadingMessage(loadinfo);           
}catch(e){   
  
}   
}

你可能感兴趣的:(JavaScript,Ajax,bean,DWR,Gmail)