日期:2014-05-16  浏览次数:20326 次

dwr util.js工具包的应用
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: 一个包含选项的对象,选项包括一个用来创建行的函数rowCreato