Gridview 多重表头 (一)

今天看到一个人每个月更新博客,结果七年后改行去卖土特产。。。感慨良多。。。

虽然我也想去开餐厅~~

今天需求里有一个多重表头,感觉比较奇特,特意留下记录,以防我的大脑被艾滋海默攻占~~没有女主的命,不能得女主的病~

先看效果 本小主脑残写个dropdownlist,忽略之。下图的方法是在不隐藏gridview本身的列标题情况下加一行。

 
 1         protected void GridView2_RowCreated(object sender, GridViewRowEventArgs e)
 2         {
 3             if (e.Row.RowType == DataControlRowType.Header)
 4             {
 5                 GridViewRow rowheader = new GridViewRow(0, 0, DataControlRowType.Header, DataControlRowState.Normal);
 6                 TableHeaderCell cell = new TableHeaderCell();
 7                 cell.Text = "llll";
 8                 cell.ColumnSpan = 4;
 9                 rowheader.Cells.Add(cell);
10                 ((GridView)sender).Controls[0].Controls.AddAt(0, rowheader);//加到最前面
11             }
12         }
View Code
 

个人赶脚上图貌似很局限,也有可能是还米有找到奥秘所在,于是,百度之,有了图二。

 1         protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
 2         {
 3             switch (e.Row.RowType)
 4             {
 5                 case DataControlRowType.Header:
 6                     //总表头
 7                     TableCellCollection tcHeader = e.Row.Cells;
 8                     tcHeader.Clear();
 9 
10                     //第一行表头
11                     tcHeader.Add(new TableHeaderCell());
12                     tcHeader[0].Attributes.Add("bgcolor", "DarkSeaBlue");
13                     tcHeader[0].Attributes.Add("colspan", "4");  //合并第一行的6列
14                     tcHeader[0].Text = "用户基本信息</th></tr><tr>";
15 
16                     //第二行表头
17                     tcHeader.Add(new TableHeaderCell());
18                     tcHeader[1].Attributes.Add("bgcolor", "DarkSeaGreen");
19                     tcHeader[1].Attributes.Add("colspan", "3");
20                     //tcHeader[1].Attributes.Add("rowspan", "2");
21                     tcHeader[1].Text = "基本信息";
22 
23                     tcHeader.Add(new TableHeaderCell());
24                     tcHeader[2].Attributes.Add("bgcolor", "DarkSeaGreen");
25                     tcHeader[2].Attributes.Add("colspan", "3");
26                     tcHeader[2].Attributes.Add("rowspan", "2");
27                     tcHeader[2].Text = "籍贯信息</th></tr><tr>";
28                     //第三行
29                      tcHeader.Add(new TableHeaderCell());
30                     tcHeader[3].Attributes.Add("bgcolor", "DarkSeaGreen");
31                     tcHeader[3].Text = "基本信息";
32                     tcHeader.Add(new TableHeaderCell());
33                     tcHeader[4].Attributes.Add("bgcolor", "DarkSeaGreen");
34                     tcHeader[4].Text = "籍贯信息";
35                      tcHeader.Add(new TableHeaderCell());
36                     tcHeader[5].Attributes.Add("bgcolor", "DarkSeaGreen");
37                     tcHeader[5].Text = "基本信息";
38                     //tcHeader.Add(new TableHeaderCell());
39                     //tcHeader[6].Attributes.Add("bgcolor", "DarkSeaGreen");
40                     //tcHeader[6].Text = "籍贯信息";
41                     break;
42             }
43         }
View Code

若不注释掉最后一单元格,将出现非常神奇的效果,亲已测之~~

原文地址:https://www.cnblogs.com/coderinprague/p/4201851.html