码迷,mamicode.com
首页 > 其他好文 > 详细

动态合并GridView数据行DataRow的列

时间:2014-08-06 17:29:21      阅读:197      评论:0      收藏:0      [点我收藏+]

标签:blog   http   数据   ar   问题   代码   html   时间   

前段时间,Insus.NET一直在演示GridView控件Header头行或列:《动态变更GridView控件列名》和《动态合并或定制GridView控件Header头某些列》,现今想演示合并Gridview的DataRow中的列。

其实合并列也不是什么复杂的问题,只想明白其中的原理,就觉得简单至极。 
数据库方面的准备,在此例中略过。
在站点创建一个网页,拉GridView控件到.aspx网页中,并用自定义模版显示数据。如下:
bubuko.com,布布扣


去.aspx.cs的code behind写数据绑定代码:
bubuko.com,布布扣


网页在浏览时,会看到下面的效果:
bubuko.com,布布扣


看到否,上图中第二列,有很KindName的相同的,为了界面简洁与清晰,Insus.NET决定合并它们。为了实现数据行中的列合并,我们需要为GridView控件写一个事件 OnRowCreated="GridViewFruit_RowCreated":
bubuko.com,布布扣



现在,我们可以去code behind写程序了,在写OnRowCreated事件程序之前,先需要定义一个页面级的变量:
bubuko.com,布布扣


上图中的变量,rowCount将记录所有记录总数,初始值为0。rowindex是将用来记录行索引,初始值为0, 而mergeCellText变量是合并的字段名。

OK,下面我们开始写OnRowCreated事件逻辑程序:
bubuko.com,布布扣


上图中:
#35行代码,如果不是数据行,将跳过下面的程序。
#37行,把e.Row.DataItem转为DataRowView。
#39-#43行代码,如果是DataRow第一行,将行索引和将要合并的列值记录下来。
#45 -#62行代码,均是处理非第一数据行。
#47行代码,如果当前行需要合并的数据列值与前一行不相同的,我们就可以合并前面的数据列了。还要把当前的行索引与列值记录下来。
#55行把相同的列拿掉。
#57行代码是判断是否为最后一行。
#59行代码,做最后一次合并列。


运行的结果如下:
bubuko.com,布布扣


如果你明白上面的逻辑处理方法,做其它列合并,是轻而易举的事情。

动态合并GridView数据行DataRow的列,布布扣,bubuko.com

动态合并GridView数据行DataRow的列

标签:blog   http   数据   ar   问题   代码   html   时间   

原文地址:http://www.cnblogs.com/lschenblog/p/3894621.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!