DWR 的 DWRUtil.addRows() 函数的使用
使用 DWR 一个常用的操作就是取到的数据往表格里填充,这就是 DWR 的 DWRUtil.addRows() 操作了,本篇就是以例子详细说明这个函数的用法。而另一个移除所有表格行的操作 DWRUtil.removeAllRows() 使用简单就不多说明了。
描述: DWR1.1开始,addRows()也可以用对象(遍历对象的属性创建行)做为数据。如果你用一个对象代替一个数组来创建单元格,这个对象会被传递给cell函数。 参数(前三个函数 id,cellfuncs 是必须的): id: table元素的id(最好是tbody元素的id) options: 一个包含选项的对象(见下面) <script type='text/javascript' src='util.js'></script> <table border=1 width="200"> <tr><th>ID</th><th>Name</th></tr> <tbody id="listTable"></tbody> </table> JS 操作代码,你可以把这段对 DWRUtil.addRows()函数的调用放在自定义的 function window.onload(){......} 中就能在文档加载完后自动调用。 //页面加载完后自动执行 function window.onload(){ var arr = [{id:'1',name:'Unmi'},{id:2,name:'Kypfos'}]; //定义一个含有两个对象的数组 DWRUtil.addRows("listTable",arr,[ //创建第一列的函数,传入 arr 中的对象,返回单元格内容,即 id 值 function(item){return item.id;},//创建第二列的函数,传入 arr 中的对象,即 name 值 function(item){return item.name;} ] ); } 说明: var arr = ['Unmi','Kypfos'}]; //定义一个含有两个字符串的数组 DWRUtil.addRows("listTable",[ //创建第一列的函数,传入 arr 中的字符串,即参数 function(item){return item;},//创建第二列的函数,传入 arr 中的字符串,即参数 function(item){return item;} ] ); 下面我们来看第二个参数 array 为对象的情况时的代码: 说明: var arr = [{id:'1',name:'Kypfos'}]; //定义一个含有两个对象的数组 DWRUtil.addRows("listTable",[ //创建第一列的函数,传入 arr 中的对象,返回单元格内容,即 id 值 function(item){return item.id;},显示 name,并在 name 上加上一个连接 function(item){ var hLink = document.createElement("a"); hLink.setAttribute("href","show.do?id="+item.id); hLink.innerHTML=item.name; return hLink; } ] ); 简单点想,我们为什么不能在这个函数中直接返回 "<a href='show.do?id="+item.id+"'>"+item.name+"</a>" 这么一段 HTML 代码吗?这个想法不错,只是默认情况下,它会把 <a href='show.do?id=1'>Unmi</a> 字符串原样的显示在页面上,而不个链接。所以要引入 DWRUtil.addRows() 的可选的第四个参数中的一个属性 escapeHtml,把它设置为 false 就能显示超链接了。 到此为止,DWRUtil.addRows() 中的四个参数都用到了,具体的第四个参数 [options] 中还有两个函数属性 rowCreator 和 cellCreator 未涉及到。这两个属性分别是用来创建行(tr) 和单元格(td) 的,所以它们的默认行为分别是 上面两个函数 rowCreator 和 cellCreator 需传入一个对象参数,这个参数有七个属性,分别是 rowCreator cellCreator rowData rowIndex rowNum data cellNum。 我想,上面那么多例子,对于 DWRUtil.addRows() 函数能应用到的场合应该都述及到了。 官方网址:http://directwebremoting.org/dwr/ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |