`
wangjian5748
  • 浏览: 209461 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

修正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) ...{
  
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中文文档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