动态合并GridView数据行DataRow的列
2013-08-05 15:49
155 查看
前段时间,Insus.NET一直在演示GridView控件Header头行或列:《动态变更GridView控件列名》和《动态合并或定制GridView控件Header头某些列》,现今想演示合并Gridview的DataRow中的列。
其实合并列也不是什么复杂的问题,只想明白其中的原理,就觉得简单至极。
数据库方面的准备,在此例中略过。
在站点创建一个网页,拉GridView控件到.aspx网页中,并用自定义模版显示数据。如下:
![](http://images.cnitblog.com/blog/28036/201308/02133519-e441bb84390d4000905ff0cd9e671ca4.png)
去.aspx.cs的code behind写数据绑定代码:
![](http://images.cnitblog.com/blog/28036/201308/02101717-1ee7a58c9eae43a48881efc763f07ebb.png)
网页在浏览时,会看到下面的效果:
![](http://images.cnitblog.com/blog/28036/201308/05151655-1b80035b2e9440688243451a4e6c2313.png)
看到否,上图中第二列,有很KindName的相同的,为了界面简洁与清晰,Insus.NET决定合并它们。为了实现数据行中的列合并,我们需要为GridView控件写一个事件 OnRowCreated="GridViewFruit_RowCreated":
![](http://images.cnitblog.com/blog/28036/201308/02102910-06893f981d1343e48d9c135b75737b41.png)
现在,我们可以去code behind写程序了,在写OnRowCreated事件程序之前,先需要定义一个页面级的变量:
![](http://images.cnitblog.com/blog/28036/201308/05152358-2c7877d5767945f8a18c63060a153837.png)
上图中的变量,rowCount将记录所有记录总数,初始值为0。rowindex是将用来记录行索引,初始值为0, 而mergeCellText变量是合并的字段名。
OK,下面我们开始写OnRowCreated事件逻辑程序:
![](http://images.cnitblog.com/blog/28036/201308/05153013-715c0432cb944863bed171e5fa067c07.png)
上图中:
#35行代码,如果不是数据行,将跳过下面的程序。
#37行,把e.Row.DataItem转为DataRowView。
#39-#43行代码,如果是DataRow第一行,将行索引和将要合并的列值记录下来。
#45 -#62行代码,均是处理非第一数据行。
#47行代码,如果当前行需要合并的数据列值与前一行不相同的,我们就可以合并前面的数据列了。还要把当前的行索引与列值记录下来。
#55行把相同的列拿掉。
#57行代码是判断是否为最后一行。
#59行代码,做最后一次合并列。
运行的结果如下:
![](http://images.cnitblog.com/blog/28036/201308/05154213-0ae630067570452fbdc37d90188ab919.png)
如果你明白上面的逻辑处理方法,做其它列合并,是轻而易举的事情。
其实合并列也不是什么复杂的问题,只想明白其中的原理,就觉得简单至极。
数据库方面的准备,在此例中略过。
在站点创建一个网页,拉GridView控件到.aspx网页中,并用自定义模版显示数据。如下:
![](http://images.cnitblog.com/blog/28036/201308/02133519-e441bb84390d4000905ff0cd9e671ca4.png)
去.aspx.cs的code behind写数据绑定代码:
![](http://images.cnitblog.com/blog/28036/201308/02101717-1ee7a58c9eae43a48881efc763f07ebb.png)
网页在浏览时,会看到下面的效果:
![](http://images.cnitblog.com/blog/28036/201308/05151655-1b80035b2e9440688243451a4e6c2313.png)
看到否,上图中第二列,有很KindName的相同的,为了界面简洁与清晰,Insus.NET决定合并它们。为了实现数据行中的列合并,我们需要为GridView控件写一个事件 OnRowCreated="GridViewFruit_RowCreated":
![](http://images.cnitblog.com/blog/28036/201308/02102910-06893f981d1343e48d9c135b75737b41.png)
现在,我们可以去code behind写程序了,在写OnRowCreated事件程序之前,先需要定义一个页面级的变量:
![](http://images.cnitblog.com/blog/28036/201308/05152358-2c7877d5767945f8a18c63060a153837.png)
上图中的变量,rowCount将记录所有记录总数,初始值为0。rowindex是将用来记录行索引,初始值为0, 而mergeCellText变量是合并的字段名。
OK,下面我们开始写OnRowCreated事件逻辑程序:
![](http://images.cnitblog.com/blog/28036/201308/05153013-715c0432cb944863bed171e5fa067c07.png)
上图中:
#35行代码,如果不是数据行,将跳过下面的程序。
#37行,把e.Row.DataItem转为DataRowView。
#39-#43行代码,如果是DataRow第一行,将行索引和将要合并的列值记录下来。
#45 -#62行代码,均是处理非第一数据行。
#47行代码,如果当前行需要合并的数据列值与前一行不相同的,我们就可以合并前面的数据列了。还要把当前的行索引与列值记录下来。
#55行把相同的列拿掉。
#57行代码是判断是否为最后一行。
#59行代码,做最后一次合并列。
运行的结果如下:
![](http://images.cnitblog.com/blog/28036/201308/05154213-0ae630067570452fbdc37d90188ab919.png)
如果你明白上面的逻辑处理方法,做其它列合并,是轻而易举的事情。
相关文章推荐
- 动态合并GridView数据行DataRow的列
- 动态合并GridView数据行DataRow的列
- 动态横向(水平)合并GridView数据行DataRow的列
- 动态创建DataTable,GridView创建多表头,表头跨行或跨列合并,创建计算列及列内容自适应等
- gridview动态生成表头、合并表头
- 动态合并或定制GridView控件Header头某些列
- 动态合并或定制GridView控件Header头某些列
- Silverlight动态添加数据模板(以RadGridView为例子)
- GridView动态增加行列
- 动态设置gridview的高度计算方法
- ASP.NET 2.0中动态添加 GridView 模板列的例子
- 合并GridView中的单元格
- asp.Net中Gridview动态创建模板列
- 每日学习总结:DataTable按某一列数值大小排序问题、GridView后台动态绑定、页面导航方法总结
- <jquery>jquery动态合并表格
- 动态改变GridView的宽度
- GridView中动态添加模板列和其子控件集合
- asp.net gridview 多行标题合并
- ASP.NET动态生成GridView的使用
- Android实战(八)------点击空白可消失的弹出层dialog中显示动态高度宽度的gridview