前一段时间,Insus.NET有写过《动态合并GridView数据行DataRow的列》http://www.cnblogs.com/insus/p/3238348.html, 那是纵向(垂直)合并某一列。
而此次,想演示的是动态横向(水平)合并GridView数据行DataRow的列。实现过程中,方法还是参考前一篇,原理一样。
依下这篇来做演示吧《动态绑数据(GridView控件Header和ItemTemplate)》http://www.cnblogs.com/insus/p/3303192.html ,这篇在第一行数据行中,有连续几列数据是一样的。我们把相同值的,合并为一列。
在html markup中为GridView控件添加一个事件OnRowDataBound="GridView1_RowDataBound",如下:
去.aspx.cs中写事件逻辑程序:
首先宣告两个变量cellIndex和mergeCellText,是为了存储列索引和列文本。
#61行的意思是,只处理第一行数据行。如果把这行Comment out之后,那说明是对所有数据进行处理。
#70行代码,是判断是否为第一列。
#76行是非第一列时。
#88行是最后一列。
下面两个动画中,是合并前与合并后的对比:
合并前:
合并后: