- using System;
- using System.Data;
- using System.Configuration;
- using System.Collections;
- using System.Web;
- using System.Web.Security;
- using System.Web.UI;
- using System.Web.UI.WebControls;
- using System.Web.UI.WebControls.WebParts;
- using System.Web.UI.HtmlControls;
- public partial class Default5 : System.Web.UI.Page
- {
- protected void Page_Load(object sender, EventArgs e)
- {
- if (!IsPostBack)
- {
- bind();
- }
- }
- public void bind()
- {
- DataTable dt = new DataTable("test");
- DataColumn col1 = new DataColumn("C1", typeof(string));
- dt.Columns.Add(col1);
- col1 = new DataColumn("C2", typeof(string));
- dt.Columns.Add(col1);
- /* DataRow row;
- for (int i = 0; i < 5; i++)
- {
- row = dt.NewRow();
- row[0] = "test1";
- row[1] = "test2";
- dt.Rows.Add(row);
- }
- 注释这段代码可以看到没有数据的时候显示header,加上它可以看到HEADER固顶*/
- gvDemo.DataSource = dt;
- gvDemo.DataBind();
- //gvDemo.HeaderRow.Visible = true;
- }
- protected void gvDemo_PreRender(object sender, EventArgs e)
- {
- if (gvDemo.Rows.Count == 0)
- {
- renderEmptyGridView(gvDemo, "C1,C2");
- }
- }
- public static void renderEmptyGridView(GridView EmptyGridView, string FieldNames)
- {
- //將GridView變成只有Header和Footer列,以及被隱藏的空白資料列
- DataTable dTable = new DataTable();
- char[] delimiterChars = {','};
- string[] colName = FieldNames.Split(delimiterChars);
- foreach (string myCol in colName)
- {
- DataColumn dColumn = new DataColumn(myCol.Trim());
- dTable.Columns.Add(dColumn);
- }
- DataRow dRow = dTable.NewRow();
- foreach (string myCol in colName)
- {
- dRow[myCol.Trim()] = DBNull.Value;
- }
- dTable.Rows.Add(dRow);
- EmptyGridView.DataSourceID = null;
- EmptyGridView.DataSource = dTable;
- EmptyGridView.DataBind();
- EmptyGridView.Rows[0].Visible = false;
- }
- protected void gvDemo_Load(object sender, EventArgs e)
- {
- //回復原本GridView的資料連結
- gvDemo.DataSource = null;
- //gvDemo.DataSourceID = "SqlDataSource1";
- bind();
- }
- }
不多说了,直接上代码,下面是aspx代码
- <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default5.aspx.cs" Inherits="Default5" %>
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml" >
- <head runat="server">
- <title>无标题页</title>
- <style type="text/css">
- .GVFixedHeader { font-weight:bold; background-color: Green; position:relative;
- top:expression(this.parentNode.parentNode.parentNode.scrollTop-1);}
- .GVFixedFooter { font-weight:bold; background-color: Green; position:relative;
- bottom:expression(getScrollBottom(this.parentNode.parentNode.parentNode.parentNode));}
- </style>
- </head>
- <body>
- <form id="form1" runat="server">
- <div>
- <asp:Panel runat="server" ID="pnlContainer" ScrollBars="Auto" Height="150px" Width="400">
- <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">
- <HeaderStyle CssClass="GVFixedHeader" BackColor="#4A3C8C" Font-Bold="True" ForeColor="#F7F7F7" />
- <FooterStyle CssClass="GVFixedFooter" BackColor="#B5C7DE" ForeColor="#4A3C8C" />
- <Columns>
- <asp:TemplateField HeaderText="C1">
- <ItemTemplate>
- <asp:Label ID="Label2" runat="server" Text='<%# Bind("C1") %>'></asp:Label>
- </ItemTemplate>
- <FooterTemplate>
- C1 Footer Here
- </FooterTemplate>
- </asp:TemplateField>
- <asp:TemplateField HeaderText="C2">
- <ItemTemplate>
- <asp:Label ID="Label1" runat="server" Text='<%# Bind("C2") %>'></asp:Label>
- </ItemTemplate>
- <FooterTemplate>
- C2 Footer Here
- </FooterTemplate>
- </asp:TemplateField>
- </Columns>
- <RowStyle BackColor="#E7E7FF" ForeColor="#4A3C8C" />
- <SelectedRowStyle BackColor="#738A9C" Font-Bold="True" ForeColor="#F7F7F7" />
- <PagerStyle BackColor="#E7E7FF" ForeColor="#4A3C8C" HorizontalAlign="Right" />
- <AlternatingRowStyle BackColor="#F7F7F7" />
- </asp:GridView>
- </asp:Panel>
- </div>
- </form>
- </body>
- </html> //from 飞鸟工作室 http://www.birdzone.cn
下面是CS代码: