Gridview 多重表头 (一)

本文分享了在ASP.NET中使用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

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值