说说 DWRUtil

时间:2021-11-13 06:19:14

详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp27

说说 DWRUtil

比如我们从服务器端获得了一个citylist的数据,要把这些数据放到id为city的一个下拉列表中,它有这么两个属性id ,name.我们要用id作为下拉列表的value,name作为下拉列表的text,那么需要这么写

      DWRUtil.removeAllOptions("city");

      DWRUtil.addOptions('city',citylist,'id','name');

注意我们每次使用addOptions之前,需要先使用removeAllOptions来将下拉列表清空,否则下拉列表中的内容会一直累加.

另外需要注意的是javascript中的字符串最好用单引号而不要用双引号,否则可能又有一些莫名其妙的问题.还有就是引号要成对出现,不要一个单的一个双的.

DWRUtil.addOptions() 方法详解2008-07-18 19:34创建列表

DWR通常需要填充一个列表框,主要是addOptions和removeAllOptions方法。如果当你更新时需要维护列表,通常需要如下代码:

Var sel = DWRUtil.getValue(id);

DWRUtil.removeAllOptions(id);

DWRUtil.addOptions(id, ...);

DWRUtil.setValue(id, sel);

DWRUtil.addOptions(selectid,array)

数组的每一个元素的字符串表示值和文本,值和文本属性是一样的。

DWRUtil.addOptions( "demo1", ['Africa', 'America', 'Asia', 'Australasia', 'Europe' ])

DWRUtil.addOptions(selectid, data, prop)

数组的每一个元素是一个对象,prop表示值和文本对应的属性名称,这里值和文本属性是一样的。

DWRUtil.addOptions( "demo1",[  { name:'Africa', population:'800m' },  { name:'America', population:'900m' },  { name:'Asia', population:'3000m' },  { name:'Australasia', population:'31m' },  { name:'Europe', population:'700m' }],"name")

DWRUtil.addOptions(selectid, array, valueprop, textprop)

数组的每一个元素是一个对象,其valueprop和textprop属性表示值和文本对应的属性名称。

DWRUtil.addOptions( "demo1",[  { name:'Africa', id:'AF' },  { name:'America', id:'AM' },  { name:'Asia', id:'AS' },  { name:'Australasia', id:'AU' },  { name:'Europe', id:'EU' }],"id","name")

DWRUtil.addOptions(selectid, map, reverse)

MAP的每一个属性键表示属性值,属性值表示文本,如果reverse属性为true,那么属性键表示文本,属性值表示值。

DWRUtil.addOptions( "demo1",{  AF:'Africa',  AM:'America',  AS:'Asia',  AU:'Australasia',  EU:'Europe'})

DWRUtil.addOptions(selectid, map, valueprop, textprop)

Map中的一个对象表示一个入口,其valueprop和textprop属性表示值和文本对应的属性名称。

DWRUtil.addOptions(ulid, array)

第一个参数表示一个ul或者ol元素的ID,每一个数组元素表示一个选项,其字符串表示会作为一个li元素的值

DWR 处理各种form表单Select/option,table2008-07-18 18:51DWR 处理各种form表单Select/option,table

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 值

例如:

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属性,对应下拉框中显示的哪个值.

代码

@ 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>这样的heml元素

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:

代码

public class Person {

private String name;

private Integer id;

pirvate String address;

public void set(){……}

public String get(){……}

}

下面用 DWRUtil.addRows();

代码

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";

}

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){

}

}