Repeater多列分别合并单元格
GridView、Repeater合并单元格可以参考http://www.cnblogs.com/zhmore/archive/2009/04/22/1440979.html,但是原文例子是合并一列的单元格。
现在有2列需要分别合并单元格,如下所示,“类型”和“操作”当有相同的值时要分别合并:
可以在原来的代码上稍做改动,前台代码如下:
<asp:Repeater runat="server" ID="rptList">
<HeaderTemplate>
<table width="100%" border="1" cellpadding="4" cellspacing="0" bgcolor="#464646" style="border-collapse:collapse; padding:0; margin:0">
<tr bgcolor="#eeeeee">
<td>序号</td>
<td>类型</td>
<td>操作</td>
<td>编号</td>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr bgcolor="#ffffff">
<td><%# Eval("rn") %></td>
<td runat="server" id="td1"><%#Eval("Col1")%></td>
<td runat="server" id="td2"><%#Eval("Col2")%></td>
<td><%#Eval("Col3")%></td>
<td><%#Eval("Col4")%></td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
后台代码如下:
private void BindData()
{
rptList.DataSource = null; //这里为数据源,省略...
rptList.DataBind();
MergeCell("td1", "td2");
}
private void MergeCell(string tdIdName1, string tdIdName2)
{
for (int i = rptList.Items.Count - 1; i > 0; i--)
{
MergeCellSet(tdIdName1, tdIdName2, i);
}
}
private void MergeCellSet(string tdIdName1, string tdIdName2, int i)
{
HtmlTableCell cellPrev = rptList.Items[i - 1].FindControl(tdIdName1) as HtmlTableCell;
HtmlTableCell cell = rptList.Items[i].FindControl(tdIdName1) as HtmlTableCell;
cell.RowSpan = (cell.RowSpan == -1) ? 1 : cell.RowSpan;
cellPrev.RowSpan = (cellPrev.RowSpan == -1) ? 1 : cellPrev.RowSpan;
if (cell.InnerText == cellPrev.InnerText)
{
cell.Visible = false;
cellPrev.RowSpan += cell.RowSpan; //关键代码,再判断执行第2列的合并单元格方法
if (tdIdName2 != "") MergeCellSet(tdIdName2, "", i);
}
}
Repeater多列分别合并单元格的更多相关文章
- C#操作EXCEL常见操作集合(行高,列宽,合并单元格,单元格边框线)
private _Workbook _workBook = null; private Worksheet _workSheet = null; private Excel.Application _ ...
- table-一列细分为多列(合并单元格)
这个是一个很常见的一个表格展示需求,其中最要的就两个属性 rowspan 和 colspan .他们分别就是合并行 与 合并列. 要做的效果是如图下面这个,联系电话就是合并了单元格.这个说法类似于ex ...
- C# 对Excel 单元格格式, 及行高、 列宽、 单元格边框线、 冻结设置
一.对行高,列宽.单元格边框等的设置 这篇简短的文字对单元格的操作总结的比较全面,特此转载过来. private _Workbook _workBook = null; private Workshe ...
- GridView中合并单元格
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Da ...
- poi获取合并单元格内的第一行第一列的值
当读取如图所示的excel时,显示为第1行 第1列 的内容是:合并单元格 其它在合并单元格区域内的单元格不显示 示例代码如下: import java.io.FileInputStream; impo ...
- GRIDVIEW多行多列合并单元格(合并列)
GitHub项目地址:https://github.com/mingceng/merge-gridviewcell 去年的时候,我写了两篇文章: GridView多行多列合并单元格(完整代码和例子) ...
- 【转载】jxl操作excel 字体 背景色 合并单元格 列宽等 .
package com.email.jav; import java.io.File;import java.io.IOException;import java.net.URL; import jx ...
- C# Excel行高、列宽、合并单元格、单元格边框线、冻结
private _Workbook _workBook = null;private Worksheet _workSheet = null;private Excel.Application _ex ...
- 【表格设置】HTML中合并单元格,对列组合应用样式,适应各浏览器的内容换行
1.常用表格标签 普通 <table> | <tr> | | <th ...
随机推荐
- python爬虫感想
老师说,能用程序解决一个实际问题,说明已经会使用工具了.今天用python做了一个小爬虫,很幸运,成功了. 有几个难点:就是学会伪装,还有一个觉得打开的方式太多,有点糊涂,正则表达式也要加强了.
- Maven 实战
http://www.cnblogs.com/chowmin/category/599392.html
- C语言堆和栈
堆和栈的区别 一个由C/C++编译的程序占用的内存分为以下几个部分1.栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等.其操作方式类似于数据结构中的栈.2.堆区(heap ...
- 利用Servlet导出Excel
-----因为Excel可以打开HTML文件,因此可以利用页面的Form表单把页面中的table内容提交给Servlet,然后后台把提交上来的table内容转换成文件流的形式,并以下载的形式转给客户端 ...
- 《zw版·Halcon入门教程与内置demo》
<zw版·Halcon入门教程与内置demo> halcon系统的中文教程很不好找,而且大部分是v10以前的版本. 例如,QQ群: 247994767(Delphi与halcon), 共享 ...
- C++多级指针与多维数组详细介绍
多级指针的概念 多级指针可对应于多维数组,这种指针变量中存的是另一个指针变量的地址,其说明如下: int val=10; int *ptr=&val; int **pptr= ...
- EditPlus 3.8.1346 中文版(6月16日更新)
新的版本增加了粘贴时自动调整行首缩进的功能(“编辑”菜单→剪贴板→粘贴时自动缩进),非常方便.建议各位马上更新.
- DOM的基本属性
结构和内容属性1.1 nodeType1.2 nodeName, tagName1.3 innerHTML1.4 innerHTML pitFalls1.5 nodeValue 总结DOM节点是一个对 ...
- Django基础
一.路由系统 1.静态路由 from app01 import views urlpatterns = [ #url(r'^admin/', admin.site.urls), url(r'^home ...
- SVN批处理
前言 我们在项目开发中,使用的版本管理工具有svn git等.这里介绍一下用 bat命令操作svn .这样会给我们带来很大的方便. bat命令 Python等大家一定要掌握哈,会给你带来很多的方便.其 ...