擴充:gridview 空資料時顯示表頭

來源:互聯網
上載者:User

標籤:

2015年7月14日16:50:06  Gridview 預設展示資料時,若資料為空白,則表格不顯示,顯示不美觀。

針對此問題進行擴充:

using System.Web.UI.WebControls;public static class GridViewExtension{    public static void BindEmptyData(this GridView g)    {        if (g.Rows.Count == 0)        {            //表頭的設定            GridViewRow row = new GridViewRow(-1, -1, DataControlRowType.EmptyDataRow, DataControlRowState.Normal);            foreach (DataControlField field in g.Columns)            {                TableCell cell = new TableCell();                cell.Text = field.HeaderText;                cell.Width = field.HeaderStyle.Width;                cell.Height = field.HeaderStyle.Height;                cell.ForeColor = field.HeaderStyle.ForeColor;                cell.Font.Size = field.HeaderStyle.Font.Size;                cell.Font.Bold = field.HeaderStyle.Font.Bold;                cell.Font.Name = field.HeaderStyle.Font.Name;                cell.Font.Strikeout = field.HeaderStyle.Font.Strikeout;                cell.Font.Underline = field.HeaderStyle.Font.Underline;                cell.BackColor = field.HeaderStyle.BackColor;                cell.VerticalAlign = field.HeaderStyle.VerticalAlign;                cell.HorizontalAlign = field.HeaderStyle.HorizontalAlign;                cell.CssClass = field.HeaderStyle.CssClass;                cell.BorderColor = field.HeaderStyle.BorderColor;                cell.BorderStyle = field.HeaderStyle.BorderStyle;                cell.BorderWidth = field.HeaderStyle.BorderWidth;                row.Cells.Add(cell);            }            TableItemStyle headStyle = g.HeaderStyle;            TableItemStyle emptyStyle = g.EmptyDataRowStyle;            emptyStyle.Width = headStyle.Width;            emptyStyle.Height = headStyle.Height;            emptyStyle.ForeColor = headStyle.ForeColor;            emptyStyle.Font.Size = headStyle.Font.Size;            emptyStyle.Font.Bold = headStyle.Font.Bold;            emptyStyle.Font.Name = headStyle.Font.Name;            emptyStyle.Font.Strikeout = headStyle.Font.Strikeout;            emptyStyle.Font.Underline = headStyle.Font.Underline;            emptyStyle.BackColor = headStyle.BackColor;            emptyStyle.VerticalAlign = headStyle.VerticalAlign;            emptyStyle.HorizontalAlign = headStyle.HorizontalAlign;            emptyStyle.CssClass = headStyle.CssClass;            emptyStyle.BorderColor = headStyle.BorderColor;            emptyStyle.BorderStyle = headStyle.BorderStyle;            emptyStyle.BorderWidth = headStyle.BorderWidth;            //空白行的設定            GridViewRow row1 = new GridViewRow(0, -1, DataControlRowType.EmptyDataRow, DataControlRowState.Normal);            TableCell cell1 = new TableCell();            cell1.Text = "沒有任何資料可以顯示";            cell1.ForeColor = System.Drawing.Color.Purple;            cell1.BackColor = System.Drawing.Color.White;            row1.Cells.Add(cell1);            cell1.ColumnSpan = g.Columns.Count;            if (g.Controls.Count == 0)            {                g.Page.Response.Write("<script language=‘javascript‘>alert(‘請先調用GridView的BindData()方法後 調用此擴充方法!‘);</script>");            }            else            {                g.Controls[0].Controls.Clear();                g.Controls[0].Controls.AddAt(0, row);                g.Controls[0].Controls.AddAt(1, row1);            }        }    }}

代碼調用方式如下:

    protected void Page_Load(object sender, EventArgs e)    {        if (!IsPostBack)        {            BindData();        }    }    protected void BindData()    {        this.grid_PlantVarietyRight.DataBind();        this.grid_PlantVarietyRight.BindEmptyData();          }

顯示效果如

本擴充主要參考  http://www.cnblogs.com/muer/archive/2010/03/26/1697178.html  稍作擴充,感謝這位哥。

擴充:gridview 空資料時顯示表頭

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.