首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

Asp.net 替GridView增加一行表头。标题

2013-12-05 
Asp.net 为GridView增加一行表头。标题比如说这个GridView,ID 船名 航次 提单号 ,就是跨这几列,这这几列上

Asp.net 为GridView增加一行表头。标题
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;
        }
    }

热点排行