`
yesjavame
  • 浏览: 687268 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

修正dwr中addRows方法的bug

DWR 
阅读更多

dwr中addRows方法存在bug
方法原型:DWRUtil.addRows(id, array, cellfuncs, [options]);

dwr文档说明addRows的id可以是table、tbody,theader、tfoot等任何一个标签的id,
但是,若传递table的id,则增加的行不会显示,这就涉及到dom在add row的行为,这里就不多说了,简单一点就是若想通过dom增加行的话,就一定要通过tbody来执行,关于这些资料,可以在网上找到的,这里我们是要解决dwr的问题

下面是修改后的addRows源代码,增加了检测传进来的id是否是table id,这样就可以解决问题了

DWRUtil.addRows=function(ele,data,cellFuncs,options)...{
varorig=ele;
ele
=$(ele);
if(ele==null)...{
DWRUtil.debug(
"addRows()can'tfindanelementwithid:"+orig+".");
return;
}

if(!DWRUtil._isHTMLElement(ele,["table","tbody","thead","tfoot"]))...{
DWRUtil.debug(
"addRows()canonlybeusedwithtable,tbody,theadandtfootelements.Attempttouse:"+DWRUtil._detailedTypeOf(ele));
return;
}


//假如传进来的是tableid,则找到table的tbody
if(DWRUtil._isHTMLElement(ele,["table"]))...{
varchildren=ele.children
for(varh=0;h<children.length;h++)...{
if(children[h].nodeName.toLowerCase()=="tbody")...{
ele=children[h];
break;
}

}

}


if(!options)options=...{};
if(!options.rowCreator)options.rowCreator=DWRUtil._defaultRowCreator;
if(!options.cellCreator)options.cellCreator=DWRUtil._defaultCellCreator;
vartr,rowNum;
if(DWRUtil._isArray(data))...{
for(rowNum=0;rowNum<data.length;rowNum++)...{
options.rowData
=data[rowNum];
options.rowIndex
=rowNum;
options.rowNum
=rowNum;
options.data
=null;
options.cellNum
=-1;
tr
=DWRUtil._addRowInner(cellFuncs,options);
if(tr!=null)...{
ele.appendChild(tr);
}

}

}

elseif(typeofdata=="object")...{
rowNum
=0;
for(varrowIndexindata)...{
options.rowData
=data[rowIndex];
options.rowIndex
=rowIndex;
options.rowNum
=rowNum;
options.data
=null;
options.cellNum
=-1;
tr
=DWRUtil._addRowInner(cellFuncs,options);
if(tr!=null)ele.appendChild(tr);
rowNum
++;
}

}

}
;

增加行的方法还可以使用insertRow()方法,table,tbody,thead,tfoot都有这个方法,下面是关于这个方法的使用:

varmytable=document.getElementById("myTable");
varmyTR=mytable.insertRow();
varrowno=mytable.rows.length;
for(vari=0;i<3;i++)...{
varmyTD=myTR.insertCell();
myTD.innerText
=rowno+","+i;
}

//2007-813

在上面的代码是在dwr1.1.3版本上测试通过

在目前的dwr2.0.1上依然存在这个bug,把红色的代码copy进去就可以了,把DWRUtil改为dwr.util

分享到:
评论

相关推荐

    DWR中文文档DWR

    DWR(Direct Web Remoting)是一种Java库,它允许JavaScript在客户端与服务器端进行直接的交互,从而实现在Web应用程序中的Ajax功能。DWR的主要目标是简化前后端的数据交换,提高用户体验,使得Web应用能够像桌面...

    dwr 各种调用方法

    dwr (Direct Web Remoting) 是一种开源技术,它允许在Web应用程序中实现在客户端JavaScript与服务器端Java之间进行安全的远程方法调用。DWR简化了前后端交互,使得前端可以直接调用后端的Java方法,就像调用本地函数...

    DWR中文文档.pdfDWR中文文档.pdf

    1. **DWR基本概念**:DWR的核心是远程方法调用(Remote Method Invocation,RMI),它允许JavaScript在浏览器中直接调用服务器上的Java方法。这种技术被称为Ajax(Asynchronous JavaScript and XML),但DWR不仅限于...

    DWR的使用方法

    在本文中,我们将深入探讨DWR的使用方法,以及如何将其纳入到您的项目中。 首先,我们需要理解DWR的核心组件: 1. **Engine**:这是DWR的核心,负责处理所有与远程调用相关的事务,包括JavaScript到Java的转换、...

    DWR中文帮助文档(最好的DWR中文帮助文档)

    4. **远程方法调用(Remote Method Invocation, RMI)**:DWR的主要功能之一就是让JavaScript能够直接调用服务器上的Java方法,文档会详细阐述如何定义可被远程调用的方法,以及如何在客户端使用这些方法。...

    DWR中各种java方法的调用

    ### DWR中各种Java方法的调用:深入解析与实践 DWR,全称为Direct Web Remoting,是一个创新的框架,旨在简化JavaScript调用Java方法的过程。它利用Ajax技术,实现了网页上的动态交互,无需页面刷新即可更新内容,...

    DWR中文文档v0.9PDF

    在《DWR中文文档v0.9》中,读者可以找到关于如何配置DWR、创建DWR接口、调用远程方法、处理异常、调试DWR应用等全面的教程和示例。这份文档不仅适合初学者,也对有经验的开发者有很高的参考价值,可以帮助他们更好地...

    DWR中处理List

    通过上述示例可以看出,在DWR中处理List、Set和Map等集合类型的关键在于正确配置DWR XML文件,并编写合适的客户端JavaScript代码来调用服务端的方法及处理返回的数据。这种方式大大简化了前后端之间的数据交换过程,...

    DWR中文手册(修正).rar

    通过阅读《DWR中文手册(修正).rar》中的dwrV0.9.pdf文档,开发者可以获得关于如何安装、配置、使用DWR的详细步骤,以及常见问题的解决方案。 在实际开发中,DWR的使用通常涉及以下几个关键步骤: 1. **设置服务器...

    DWR中文文档(pdf)

    - **集成DWR**: 将DWR框架加入到项目中,通常通过将DWR的jar包添加到项目的类路径中完成。 - **配置文件**: 编辑`web.xml`和`dwr.xml`文件,设置DWR的工作模式和各种参数。 ##### 1.2 HelloWorld示例 - **配置文件...

    DWR2.0中文文档

    - **简介**:DWR的核心理念是使JavaScript能够像调用本地方法一样调用服务器端的Java方法,极大地简化了Ajax编程。 - **第一个DWR程序:HelloWorld** - 将DWR库添加到项目中。 - 配置`web.xml`和`dwr.xml`文件,...

    dwr实例,JavaScript调用java方法的小例子

    DWR简化了AJAX(Asynchronous JavaScript and XML)应用的开发,使得开发者可以方便地在JavaScript中直接调用Java方法,仿佛它们是本地函数一样。 在"TestDwr"这个压缩包中,我们可以预期包含了一个简单的DWR实例,...

    DWR框架使用方法DOC

    DWR(Direct Web Remoting)框架是一个开源的Java库,用于在Web应用程序中实现Ajax功能。它允许在客户端JavaScript和服务器端Java代码之间进行实时、安全的交互,从而提高用户体验,减少页面刷新的需求。以下是对DWR...

    DWR中文文档 ,非常详细

    DWR(Direct Web Remoting)是一种Java库,用于在Web应用程序中实现实时的、双向的JavaScript和服务器端代码交互。这个技术允许开发者在客户端浏览器上执行服务器端的方法,就像它们是本地JavaScript函数一样,极大...

    DWR addOptions()填充下拉框,addRows()填充表格

    在这个场景中,`addOptions()` 和 `addRows()` 是两个关键的DWR方法,分别用于动态填充下拉选择框(dropdown)和表格(table)。 1. `addOptions()` 方法: `addOptions()` 是DWR提供的一种方便的方法,用于向...

    DWR中文教程(外带DWR包)

    DWR(Direct Web Remoting)是一种Java库,用于在Web应用程序中实现实时的JavaScript到服务器端Java对象的通信。这个“DWR中文教程(外带DWR包)”为初学者提供了一个全面的入门指南,帮助理解并掌握DWR的基本概念和...

    springboot整合dwr实现js调用java方法

    通过DWR,开发者可以在不涉及繁琐的AJAX请求和响应处理的情况下,直接在JavaScript中调用Java对象的方法,使得前端和后端的通信变得更为便捷。 **整合SpringBoot与DWR** 1. **添加依赖**:在SpringBoot项目的`pom....

Global site tag (gtag.js) - Google Analytics