Gridview header固頂,空數據行顯示header

  1. using System;
  2. using System.Data;
  3. using System.Configuration;
  4. using System.Collections;
  5. using System.Web;
  6. using System.Web.Security;
  7. using System.Web.UI;
  8. using System.Web.UI.WebControls;
  9. using System.Web.UI.WebControls.WebParts;
  10. using System.Web.UI.HtmlControls;
  11. public partial class Default5 : System.Web.UI.Page
  12. {
  13.     protected void Page_Load(object sender, EventArgs e)
  14.     {
  15.         if (!IsPostBack)
  16.         {
  17.             bind();
  18.         }
  19.     }
  20.     public void bind()
  21.     {
  22.         DataTable dt = new DataTable("test");
  23.         DataColumn col1 = new DataColumn("C1"typeof(string));
  24.         dt.Columns.Add(col1);
  25.         col1 = new DataColumn("C2"typeof(string));
  26.         dt.Columns.Add(col1);
  27.         /*    DataRow row; 
  28.         for (int i = 0; i < 5; i++)
  29.         {
  30.             row = dt.NewRow();
  31.             row[0] = "test1";
  32.             row[1] = "test2";
  33.             dt.Rows.Add(row);
  34.         }
  35.   註釋這段代碼可以看到沒有數據的時候顯示header,加上它可以看到HEADER固頂*/
  36.         gvDemo.DataSource = dt;
  37.         gvDemo.DataBind();
  38.         //gvDemo.HeaderRow.Visible = true;
  39.     }
  40.     protected void gvDemo_PreRender(object sender, EventArgs e)
  41.     {
  42.         if (gvDemo.Rows.Count == 0)
  43.         {
  44.             renderEmptyGridView(gvDemo, "C1,C2");
  45.         }
  46.     }
  47.     public static void renderEmptyGridView(GridView EmptyGridView, string FieldNames)
  48.     { 
  49.         //將GridView變成只有Header和Footer列,以及被隱藏的空白資料列    
  50.         DataTable dTable = new DataTable();  
  51.         char[] delimiterChars = {','};   
  52.         string[] colName = FieldNames.Split(delimiterChars);  
  53.         foreach (string myCol in colName)  
  54.         {       
  55.             DataColumn dColumn = new DataColumn(myCol.Trim());    
  56.             dTable.Columns.Add(dColumn);   
  57.         }   
  58.         
  59.         DataRow dRow = dTable.NewRow();  
  60.         foreach (string myCol in colName)   
  61.         {      
  62.             dRow[myCol.Trim()] = DBNull.Value;  
  63.         
  64.         }    
  65.         
  66.         dTable.Rows.Add(dRow); 
  67.         
  68.         EmptyGridView.DataSourceID = null
  69.         EmptyGridView.DataSource = dTable;   
  70.         EmptyGridView.DataBind();    
  71.         EmptyGridView.Rows[0].Visible = false;
  72.     
  73.     }
  74.     protected void gvDemo_Load(object sender, EventArgs e)
  75.     {
  76.         //回復原本GridView的資料連結       
  77.         gvDemo.DataSource = null;       
  78.         //gvDemo.DataSourceID = "SqlDataSource1";
  79.         bind();
  80.     }
  81. }
repter 控件加上固定的HEADER, 與沒有數據時顯示header
不多說了,直接上代碼,下面是aspx代碼
  1. <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default5.aspx.cs" Inherits="Default5" %>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml" >
  4. <head runat="server">
  5.     <title>無標題頁</title>
  6.     <style type="text/css">
  7.         
  8.         .GVFixedHeader { font-weight:bold; background-color: Green; position:relative; 
  9.                  top:expression(this.parentNode.parentNode.parentNode.scrollTop-1);}
  10. .GVFixedFooter { font-weight:bold; background-color: Green; position:relative;
  11.                  bottom:expression(getScrollBottom(this.parentNode.parentNode.parentNode.parentNode));}
  12.     </style>
  13. </head>
  14. <body>
  15.     <form id="form1" runat="server">
  16.     <div>
  17.     <asp:Panel runat="server" ID="pnlContainer" ScrollBars="Auto" Height="150px" Width="400">
  18.     <asp:GridView ShowFooter="True" runat="server" Width="96%" ID="gvDemo" AutoGenerateColumns="False" BackColor="White" BorderColor="#E7E7FF" BorderStyle="None" BorderWidth="1px" CellPadding="3" GridLines="Horizontal" OnLoad="gvDemo_Load" OnPreRender="gvDemo_PreRender">
  19.     <HeaderStyle CssClass="GVFixedHeader" BackColor="#4A3C8C" Font-Bold="True" ForeColor="#F7F7F7" />
  20.     <FooterStyle CssClass="GVFixedFooter" BackColor="#B5C7DE" ForeColor="#4A3C8C" />
  21.         <Columns>
  22.             <asp:TemplateField HeaderText="C1">
  23.                 <ItemTemplate>
  24.                     <asp:Label ID="Label2" runat="server" Text='<%# Bind("C1") %>'></asp:Label>
  25.                 </ItemTemplate>
  26.                <FooterTemplate>
  27.                     C1 Footer Here
  28.                 </FooterTemplate>
  29.             </asp:TemplateField>
  30.             <asp:TemplateField HeaderText="C2">
  31.                 <ItemTemplate>
  32.                     <asp:Label ID="Label1" runat="server" Text='<%# Bind("C2") %>'></asp:Label>
  33.                 </ItemTemplate>
  34.                 <FooterTemplate>
  35.                     C2 Footer Here
  36.                 </FooterTemplate>
  37.             </asp:TemplateField>
  38.         </Columns>
  39.         <RowStyle BackColor="#E7E7FF" ForeColor="#4A3C8C" />
  40.         <SelectedRowStyle BackColor="#738A9C" Font-Bold="True" ForeColor="#F7F7F7" />
  41.         <PagerStyle BackColor="#E7E7FF" ForeColor="#4A3C8C" HorizontalAlign="Right" />
  42.         <AlternatingRowStyle BackColor="#F7F7F7" />
  43.     </asp:GridView>
  44.    </asp:Panel>
  45.          
  46.     </div>
  47.     </form>
  48. </body>
  49. </html>   //from 飛鳥工作室   http://www.birdzone.cn

 

 

下面是CS代碼:

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章