Asp.net 为GridView增加一行表头。标题
比如说这个GridView,ID 船名 航次 提单号 ,就是跨这几列,这这几列上面增加一行标题,比如,“基本信息”。然后,后面几列类别: 预配舱单状态 中心收到时间 预配舱单报文号 海关回执 的标题,比如为 “预配舱单海关回执详细信息”。不能用JS ,就是GridView,不用Table。
[解决办法]
在gridview的RowCreated事件中绘制表头。
http://www.cnblogs.com/scy251147/archive/2011/02/13/1953170.html
[解决办法]
最好不要破坏GridView的原始的内容。例如GridView会自动为标题列产生“排序”等等各种控制机制,如果你过早地自己写这一行,破坏GridView原本应该产生的内容,得不偿失!
你可以尽量晚地“添加”标题行,也就是在Render过程已经开始之后,在RenderControls开始之前,才处理标题行。
例如,可以用自己的GridView替代原来的GridView,例如
using System.Drawing;
using System.Web.UI.WebControls;
namespace MyControls
{
public class GridView : System.Web.UI.WebControls.GridView
{
protected override void RenderContents(System.Web.UI.HtmlTextWriter writer)
{
var table = (Table)this.Controls[0];
var row = new TableRow();
table.Rows.AddAt(0, row);
var cell = new TableHeaderCell { Text = "组标题1", ColumnSpan = 2, BackColor = Color.AliceBlue };
row.Cells.Add(cell);
cell = new TableHeaderCell { Text = "组标题2", ColumnSpan = 2, CssClass = "titleStyle2" };
row.Cells.Add(cell);
cell = new TableHeaderCell { Text = "标题3" };
row.Cells.Add(cell);
base.RenderContents(writer);
}
}
}
然后,在你的页面(或者ascx)上写上
<%@ Register TagPrefix="mc" Namespace="MyControls" %>
并将
<ASP:GridView ....改为
<mc:GridView ....即可。
[解决办法]
复合表头么???
以前写过一个
http://www.cnblogs.com/diaodiaop/archive/2012/04/25/2469734.html
[解决办法]
/// <summary>
/// 在 GridView 控件中创建新行时发生,此事件通常用于在创建某个行时修改该行的布局或外观
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
{
switch (e.Row.RowType)
{
//判断是否表头
case DataControlRowType.Header:
//第一行表头
TableCellCollection tcHeader = e.Row.Cells;
tcHeader.Clear();
tcHeader.Add(new TableHeaderCell());
tcHeader[0].Attributes.Add("colspan", "4");
tcHeader[0].Attributes.Add("bgcolor", "Azure");
tcHeader[0].Text = "基 本 信 息";
tcHeader.Add(new TableHeaderCell());
tcHeader[1].Attributes.Add("bgcolor", "Azure");
tcHeader[1].Text = "其他</th></tr><tr>";
//第1行表头
tcHeader.Add(new TableHeaderCell());
tcHeader[0].Attributes.Add("bgcolor", "Azure");
tcHeader[0].Text = "ID";
tcHeader.Add(new TableHeaderCell());
tcHeader[1].Attributes.Add("bgcolor", "Azure");
tcHeader[1].Text = "船名";
tcHeader.Add(new TableHeaderCell());
tcHeader[2].Attributes.Add("bgcolor", "Azure");
tcHeader[2].Text = "航次";
tcHeader.Add(new TableHeaderCell());
tcHeader[3].Attributes.Add("bgcolor", "Azure");
tcHeader[3].Text = "提单号";
tcHeader.Add(new TableHeaderCell());
break;
}
}