`
cn_arthurs
  • 浏览: 330026 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

动态生成rowspan

 
阅读更多

动态生成rowspan

需求从后台传过来一个人员的list集合,现在要把同一个部门的人员把部门名称合并了在第一列显示

<%
	ArrayList list = (ArrayList)request.getAttribute("list");		//获取一个list
	HashMap map = new HashMap();				//创建一个hashmap,因为key是唯一的,用于存放部门
		for(int i=0;i<list.size();i++){				//开始遍历集合
		ClsbInsert ci = (ClsbInsert)list.get(i);		//获取一个人员对象
			if(map.get(ci.getProductid()+"")==null){	//判断对象的部门ID在map中是否存在
				ArrayList l = new ArrayList();	//如果不存在,创建一个list
				l.add(ci);			//将对象存入list
				map.put(ci.getProductid()+"",l);		//将list存入map中
			}else{
				ArrayList l2 = new ArrayList(); 					//如果对象已经在map中存在了
				l2 = (ArrayList)map.get(ci.getProductid()+"");//获取这个key的list对象
				l2.add(ci);		//再存入新的对象
			}
		}
//封装完毕,可以在页面中进行遍历了,不过不同的是,以前是遍历list,现在是需要遍历map了
%>

 

<%
	//开始遍历map,可能对象名称和属性跟一个人员对象有出入,请勿对号入座
	for(Iterator it = map.keySet().iterator();it.hasNext();){			//开始遍历map
							ArrayList rs = new ArrayList();
							rs = (ArrayList)map.get(it.next());			//将一个部门的values取出,是一个list
							int no = rs.size();//获取这个map中的list中有几条记录		//用于rowspan设置的数量,假如说是10
							int tempno = no-1;//临时变量			//用于剩下多少行不显示td

							for(int i=0;i<rs.size();i++){
								ClsbInsert ci = (ClsbInsert)rs.get(i);		//开始遍历list
				%>
                  <tr bgcolor="#FFFFFF" class="font">
                    <%if(no>tempno){%>								//判断是否显示td以及rowspan的数量
                    	<td rowspan="<%=no%>"><!--部门名称-->
							<%=ci.getPrjName()%> 
						</td>
                    <%}%>
                    <td><!--人员名称-->
					<%=ci.getClName()%> 
					</td>
        
				   <td>
				   <% 
				   		request.setAttribute("stockProductPriceValue",ci.getStockProductPrice().doubleValue()+"");
				   		
				   %>
				   		<fmt:formatNumber value="${stockProductPriceValue}" pattern="0.0000"/> 
						</td>
                  </tr>  
                <%
								no = no-1;												//执行完第一次循环后,将no值减1,这样就可以让它<=tempno,就不会显示同部门的td了
							}
						}
				%>

 

分享到:
评论

相关推荐

    datagrid 多表头及动态生成的实现

    ### datagrid多表头及动态生成的实现 #### 前言 在现代Web开发中,数据展示是非常重要的一环。对于复杂的数据表格而言,如何有效地组织和展示这些数据成为了一个挑战。本篇文章将详细介绍如何使用JQuery EasyUI...

    javascript动态生成table及处理.

    ### JavaScript 动态生成 Table 及处理 在现代 Web 开发中,动态生成 HTML 元素是一种非常实用的技术,尤其当涉及到数据展示时,如表格(`&lt;table&gt;`)。通过 JavaScript 动态生成表格可以更加灵活地管理和更新数据。...

    js 实现根据数组分组动态生成table(合并相同项)

    在JavaScript编程中,根据数组数据进行分组并动态生成表格是一项常见的需求,特别是在Web开发中。这个场景通常出现在数据展示、报表生成或者数据分析的应用中。本文将深入探讨如何使用JavaScript实现这一功能,尤其...

    flying-saucer生成pdf

    flying-saucer可能不直接支持CSS的`rowspan`和`colspan`属性。一种解决方案是利用CSS的伪元素和绝对定位来模拟跨行效果。另一种方法是调整HTML结构,使用嵌套表格或者多个单元格合并来实现类似的功能。 4. **集成...

    JS实现动态修改table及合并单元格的方法示例

    在JavaScript中,动态修改表格(Table)以及合并单元格是常见的需求,特别是在处理数据展示或者报表生成时。以下将详细介绍如何使用JS实现这些功能。 首先,要动态修改表格,我们需要获取表格元素。在HTML中,表格...

    angularjs实现动态表格

    总的来说,AngularJS通过其强大的数据绑定和指令系统,使得动态生成表格变得非常直观和灵活。在这个例子中,后端人员利用AngularJS实现了动态表格,尽管可能还有改进的空间,但已经能够满足基本的需求。如果你在实际...

    GridView动态创建列头丶自定义多行合并表头

    ### GridView动态创建列头与自定义多行合并表头 #### 一、概述 在Web开发中,`GridView` 控件被广泛应用于显示表格数据。它不仅提供了强大的数据绑定功能,还支持各种自定义设置,使得开发者能够根据具体需求灵活...

    layui js 动态加载数据 复杂表头多表头实例.pdf

    Layui JS动态加载数据复杂表头多表头实例 Layui 是一个流行的前端框架,它提供了许多实用的组件和功能,其中表格组件是其中一个非常重要的组件。然而,在实际开发中,遇到复杂表头的需求是非常常见的,例如多表头、...

    java 后端生成pdf模板合并单元格表格的案例.docx

    - 在生成`PdfPCell`对象时,使用`rowspan`属性指定单元格跨越的行数。 - **横向合并**: - 同样地,在创建`PdfPCell`时,使用`colspan`属性来指定单元格跨越的列数。 #### 总结 本案例详细展示了如何使用Java后端...

    通过jquery还原含有rowspan、colspan的table的实现方法

    这种方法是处理动态生成或修改具有rowspan和colspan属性的表格内容的常见做法。 最后,需要指出的是,本文提供的是还原具有rowspan和colspan属性的表格的一种实现方法,实际上,网络上已经存在其他的解决方案和代码...

    JavaScript根据json生成html表格的示例代码

    整体而言,这份文档提供的内容主要关注于如何利用JavaScript和JSON技术结合来动态生成HTML表格。这不仅仅是一个技术的展示,更是一个在实际开发中经常会用到的实践案例。通过理解和运用这些技术,开发者可以创建出...

    JSP中动态合并单元格的实例代码

    JSP是一种基于Java的服务器端脚本语言,用于生成动态Web内容。JSTL则是一组标准标签库,它提供了一系列的标签,使得JSP开发者可以更方便地处理常见的任务,比如循环、条件判断、XML处理等。 在这个实例中,我们使用...

    jQuery动态生成不规则表格(前后端)

    ### jQuery动态生成不规则表格知识点总结 #### 一、表格需求分析 在讨论实现动态生成不规则表格之前,首先需要明确表格的需求。在这个例子中,表格的数据来源于数据库,需要将特定的表中的所有行以表格形式展示在...

    列表多行多列合并单元格

    当处理动态生成的数据时,比如从服务器获取的列表数据,可能需要在JavaScript中动态设置`colspan`和`rowspan`。这可以通过遍历数据并分析合并规则来实现。例如,如果你的列表有三列,但某些情况下需要将第一列和第二...

    table控件数据生成

    "table控件数据生成"这个主题涉及到如何使用特定的编程技术来创建和管理数据展示的表格,其中包括动态生成表格、行操作(如删除)以及复杂的布局功能(如列合并)和用户体验优化(如分页)。下面我们将深入探讨这些...

    用Python生成HTML表格的方法示例

    这个`html-table`库使得在Python中生成复杂格式的HTML表格变得容易,能够满足不同需求,如动态生成报告、邮件自动化中的数据展示等。通过这种方式,开发者可以更加专注于业务逻辑,而不用过于关心HTML的细节。

    js自动合并相同单元格Demo

    `js自动合并相同单元格Demo`是一个关于如何在JavaScript中实现动态生成表格并自动合并相同单元格的示例。这个插件尤其适用于数据量较大且存在重复信息的场景,可以有效提升表格的可读性和美观性。 首先,我们要理解...

    vue+elementUI实现动态表格合并单元格.zip

    - Vue 的 `v-for` 指令用于循环遍历数组,生成表格的行。每行数据可以通过一个对象表示,每个对象的属性对应表格的列。 - `v-if` 或 `v-show` 指令可以用来控制表格行或单元格的显示与隐藏,实现增删行的功能。 2...

    动态合并行,列

    从给定的代码片段来看,这段程序主要是在处理一个数据表(`DataTable`)的行与列的动态合并,这是在Web开发中处理表格...这些技术点共同构成了动态表格生成的基础,使得开发者能够灵活地展示和格式化复杂的数据结构。

    layui动态加载多表头的实例

    动态生成header 返回的header数据:格式为数组,因为是二级表头,所以是二元数组 后台动态拼接数组,返回数组后把两个数组push到一个空数组中就可以组成一个动态的多级表头 var header= []; var header1= [{field:...

Global site tag (gtag.js) - Google Analytics