思路:如果想实现多表头,得自己绘制tablecell,具体的方式就是先添加一个新的TableHeaderCell,然后就是设定其Attributes属性,再者如果要进行单元格合并,那么需要指定其colspan或者是rowspan,以便确定是横向合并还是竖向合并。
实现方式:因为表头会自动产生<th>和</th>标签,所以在去除这2个标签的基础上,自行构造行和列并按顺序增加到html文本上。
代码:
protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
{
switch (e.Row.RowType)
{
case DataControlRowType.Header:
TableCellCollection tcHeader = e.Row.Cells;
tcHeader.Clear();
string headtxt = "企业层次</th>";
headtxt += "<th colspan='5'>上期能源实绩</th>";
headtxt += "<th colspan='3'>本期能源计划</th></tr><tr>";
headtxt += "<th>能源</th><th>能耗</th><th>产品</th><th>产量</th><th>单耗</th>";
headtxt += "<th>计划产量</th><th>计划能耗</th><th>对比</th></tr><tr>";
headtxt = headtxt.Substring(0, headtxt.Length - 5); //移除掉最后一个</th>
TableHeaderCell cell = new TableHeaderCell();
cell.Attributes.Add("rowspan", "2"); //跨两行
cell.Text = (headtxt);
tcHeader.Add(cell);
break;
}
}