Insus.NET有对GridView控件进行横纵分别合并列:
横:《动态横向(水平)合并GridView数据行DataRow的列http://www.cnblogs.com/insus/p/3304562.html
纵:《动态合并GridView数据行DataRow的列http://www.cnblogs.com/insus/p/3238348.html

也有对Repeater控件进行纵合并演示《动态合并Repeater控件数据列http://www.cnblogs.com/insus/p/3240848.html
还差一个对Repeater控件横向对列进行合并的。没有关系的,Insus.NET下面慢慢演示给大家。

就以此篇《动态绑数据(Repeater控件HeaderTemplate和ItemTemplate)http://www.cnblogs.com/insus/p/3307939.html来作演示基础,就是说以它的数据基础上进行。

html markup不变。

而下面的方法:

稍作修改,算是优化了,因为在列合并时,有好几处地方用到此数据源,因此把它放在一个ViewState中,这个它只去数据库获取一次数据即可。

现在是否可以改写OnItemDataBound事件了呢? 没有,因为Repeater跟GridView控件不一样。我们还有写一些程序来处理那些列是连续些字段。先要处理好了,才可以做列合并。

先写一个类别:

还在写另外一个类别:

上面的类,就是为了处理列名它的连续性。记录了列名,开始列索引和列结束索引。
到这些,我们可以改写OnItemDataBound="RepeaterFruit_ItemDataBound"事件了。

第#46至#59行代码是动态生成Repeater Header。
#61行是对DateItem进行处理。
#70行是对数据第一行时合并。如果去除这个判断,就是对所有数据行都合并。
#72至#77是处理相同的列,它的连续性,记录列文本以及列开始索引和列结束索引。
#79至#95是处理合并列。
#98至#103是处理不合并的列。

看看运行的效果:

最新文章

  1. 【转】javascript变量声明 及作用域
  2. Android项目——传感器的使用
  3. hdu2594 Simpsons’ Hidden Talents kmp
  4. 2013 ACM/ICPC 长沙现场赛 A题 - Alice's Print Service (ZOJ 3726)
  5. 最新Blog
  6. citrix xen server 虚拟机无法关闭的问题
  7. jemalloc/jemalloc.h: No such file or directory
  8. [转]C#中yield用法
  9. SqlBulkCopy批量插入数据时,不执行触发器和约束的解决方法
  10. android 电平信号状态识别View平局
  11. 嵌入Python | 调用Python模块中有参数的函数
  12. spring boot sharding-jdbc实现分佈式读写分离和分库分表的实现
  13. InstallShield Limited Edition使用说明
  14. form表单中多个button按钮必须声明type类型
  15. Java try和catch的使用介绍
  16. rand_1tom 产生 rand_1ton
  17. 【Graphite】使用dropwizard.metrics向Graphite中写入指标项数据
  18. 关于Sample的分析报告
  19. js设置光标插入文字和HTML
  20. XP系统下 VS2010 选中行崩溃

热门文章

  1. python之 centos6.7下 python 3.5.2 源码、Django-1.9 安装
  2. Eclipse jar包源码下载
  3. Hibernate基础(一)
  4. iOS开发之---KVC全解
  5. 问题:window7任务计划时;结果:Win7 下如何添加任务计划呢
  6. 关于JS正则表达式的一篇文章(转载)
  7. eclipse安卓模拟器Failed to install on device 'emulator-5554': timeout处理方案
  8. java执行linux命令的工具类
  9. java.sql.SQLException: Error while processing statement: FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask
  10. 【271】IDL-ENVI二次开发