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);
}
}

最新文章

  1. Redis 与 数据库处理数据的两种模式
  2. JMeter专题系列(六)集合点
  3. [Android]Volley源码分析(五)
  4. zabbix监控模式、分布式、自动化
  5. 【原】js检测移动端横竖屏
  6. Android学习笔记(十一)——ListView的使用(下)
  7. ajax上传图片到服务器
  8. App lifecycle(UWP深入学习一)
  9. PDT已有很大改进
  10. struts2标签整理
  11. HTML5要点(四)对象全整理
  12. Python的基本配置
  13. [每日一题JS] 正则表达式
  14. project euler 14 collatz
  15. 调用android方法,出现版本太低解决方法
  16. 第5章 子网划分和CIDR
  17. 《k8s-1.13版本源码分析》-调度预选
  18. 从壹开始前后端分离 [ vue + .netcore 补程 ] 三十一║ Nuxt终篇:基于Vuex的权限验证探究
  19. Elasticsearch JAVA api轻松搞定groupBy聚合
  20. Centos7 yum安装tomcat

热门文章

  1. Web 服务器 low bandth DOS attack
  2. HBA相关知识
  3. (转)学习使用Jmeter做压力测试(三)--数据库测试
  4. NDK开发历程(一):android native code的调试方法
  5. 使用geoserver发布arcgis切片
  6. (temp)catch ip
  7. 二十五、JDK1.5新特性---枚举
  8. JDK1.6 中文API 下载地址
  9. Redmine自定义字段增多后会变慢
  10. JAVA join()方法