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) ...{
var orig = ele;
ele = $(ele);
if (ele == null) ...{
DWRUtil.debug("addRows() can't find an element with id: " + orig + ".");
return;
}
if (!DWRUtil._isHTMLElement(ele, ["table", "tbody", "thead", "tfoot"])) ...{
DWRUtil.debug("addRows() can only be used with table, tbody, thead and tfoot elements. Attempt to use: " + DWRUtil._detailedTypeOf(ele));
return;
}
// 假如传进来的是table id,则找到table的tbody
if (DWRUtil._isHTMLElement(ele, ["table"])) ...{
var children = ele.children
for(var h=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;
var tr, 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);
}
}
}
else if (typeof data == "object") ...{
rowNum = 0;
for (var rowIndex in data) ...{
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都有这个方法,下面是关于这个方法的使用:
var mytable = document.getElementById("myTable");
var myTR = mytable.insertRow();
var rowno = mytable.rows.length;
for (var i=0; i<3; i++)...{
var myTD=myTR.insertCell();
myTD.innerText=rowno+", "+i;
}
分享到:
相关推荐
DWR(Direct Web Remoting)是一种Java库,它允许JavaScript在客户端与服务器端进行直接的交互,从而实现在Web应用程序中的Ajax功能。DWR的主要目标是简化前后端的数据交换,提高用户体验,使得Web应用能够像桌面...
dwr (Direct Web Remoting) 是一种开源技术,它允许在Web应用程序中实现在客户端JavaScript与服务器端Java之间进行安全的远程方法调用。DWR简化了前后端交互,使得前端可以直接调用后端的Java方法,就像调用本地函数...
1. **DWR基本概念**:DWR的核心是远程方法调用(Remote Method Invocation,RMI),它允许JavaScript在浏览器中直接调用服务器上的Java方法。这种技术被称为Ajax(Asynchronous JavaScript and XML),但DWR不仅限于...
在本文中,我们将深入探讨DWR的使用方法,以及如何将其纳入到您的项目中。 首先,我们需要理解DWR的核心组件: 1. **Engine**:这是DWR的核心,负责处理所有与远程调用相关的事务,包括JavaScript到Java的转换、...
4. **远程方法调用(Remote Method Invocation, RMI)**:DWR的主要功能之一就是让JavaScript能够直接调用服务器上的Java方法,文档会详细阐述如何定义可被远程调用的方法,以及如何在客户端使用这些方法。...
### DWR中各种Java方法的调用:深入解析与实践 DWR,全称为Direct Web Remoting,是一个创新的框架,旨在简化JavaScript调用Java方法的过程。它利用Ajax技术,实现了网页上的动态交互,无需页面刷新即可更新内容,...
在《DWR中文文档v0.9》中,读者可以找到关于如何配置DWR、创建DWR接口、调用远程方法、处理异常、调试DWR应用等全面的教程和示例。这份文档不仅适合初学者,也对有经验的开发者有很高的参考价值,可以帮助他们更好地...
通过上述示例可以看出,在DWR中处理List、Set和Map等集合类型的关键在于正确配置DWR XML文件,并编写合适的客户端JavaScript代码来调用服务端的方法及处理返回的数据。这种方式大大简化了前后端之间的数据交换过程,...
通过阅读《DWR中文手册(修正).rar》中的dwrV0.9.pdf文档,开发者可以获得关于如何安装、配置、使用DWR的详细步骤,以及常见问题的解决方案。 在实际开发中,DWR的使用通常涉及以下几个关键步骤: 1. **设置服务器...
- **集成DWR**: 将DWR框架加入到项目中,通常通过将DWR的jar包添加到项目的类路径中完成。 - **配置文件**: 编辑`web.xml`和`dwr.xml`文件,设置DWR的工作模式和各种参数。 ##### 1.2 HelloWorld示例 - **配置文件...
- **简介**:DWR的核心理念是使JavaScript能够像调用本地方法一样调用服务器端的Java方法,极大地简化了Ajax编程。 - **第一个DWR程序:HelloWorld** - 将DWR库添加到项目中。 - 配置`web.xml`和`dwr.xml`文件,...
DWR简化了AJAX(Asynchronous JavaScript and XML)应用的开发,使得开发者可以方便地在JavaScript中直接调用Java方法,仿佛它们是本地函数一样。 在"TestDwr"这个压缩包中,我们可以预期包含了一个简单的DWR实例,...
DWR(Direct Web Remoting)框架是一个开源的Java库,用于在Web应用程序中实现Ajax功能。它允许在客户端JavaScript和服务器端Java代码之间进行实时、安全的交互,从而提高用户体验,减少页面刷新的需求。以下是对DWR...
DWR(Direct Web Remoting)是一种Java库,用于在Web应用程序中实现实时的、双向的JavaScript和服务器端代码交互。这个技术允许开发者在客户端浏览器上执行服务器端的方法,就像它们是本地JavaScript函数一样,极大...
在这个场景中,`addOptions()` 和 `addRows()` 是两个关键的DWR方法,分别用于动态填充下拉选择框(dropdown)和表格(table)。 1. `addOptions()` 方法: `addOptions()` 是DWR提供的一种方便的方法,用于向...
DWR(Direct Web Remoting)是一种Java库,用于在Web应用程序中实现实时的JavaScript到服务器端Java对象的通信。这个“DWR中文教程(外带DWR包)”为初学者提供了一个全面的入门指南,帮助理解并掌握DWR的基本概念和...
通过DWR,开发者可以在不涉及繁琐的AJAX请求和响应处理的情况下,直接在JavaScript中调用Java对象的方法,使得前端和后端的通信变得更为便捷。 **整合SpringBoot与DWR** 1. **添加依赖**:在SpringBoot项目的`pom....