Gridview header固顶,空数据行显示header
2008-09-27 17:40
274 查看
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();
}
}
repter 控件加上固定的HEADER, 与没有数据时显示header
不多说了,直接上代码,下面是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代码:
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();
}
}
repter 控件加上固定的HEADER, 与没有数据时显示header
不多说了,直接上代码,下面是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代码:
相关文章推荐
- 在空的GridView中显示HeaderFooter
- 关于gridview添加header造成header显示不完全的解决方法
- 转载:GridView 空记录时显示 Header
- 让GridView的Food和Header一直显示在屏幕上(滚动时)
- GridView自动生成列时,利用DIV控制显示长宽 控件数据行和表头文字不换行
- GridView自动生成列时,利用DIV控制显示长宽 控件数据行和表头文字不换行
- 不修改 GridView的HeaderText,其中数据库中的头标题是:custName,custId.这样的字符同样显示在GridView中,应该如何更改才能让GridView的头一行显示:姓名,编号而不是显示custName,custId
- ASP GridView绑定数据为空时,显示footer和header,以实现添加
- 使用ASP.NET AJAX让GridView的数据行显示提示框(ToolTip)
- [翻译]使用ASP.NET AJAX让GridView的数据行显示提示框(ToolTip)
- [翻译]使用ASP.NET AJAX让GridView的数据行显示提示框(ToolTip)
- 转载:GridView 空记录时显示 Header
- GridView自动生成列时,利用DIV控制显示长宽 控件数据行和表头文字不换行
- [翻译]使用ASP.NET AJAX让GridView的数据行显示提示框(ToolTip)
- [翻译]使用ASP.NET AJAX让GridView的数据行显示提示框(ToolTip)
- GridView空数据行显示和选择整行
- 让GridView在无数据时显示表头Header和脚注Footer
- GridView空记录时显示Header和Footer
- 使用ASP.NET AJAX让GridView的数据行显示提示框(ToolTip)(转)
- GridView无记录时不显示表头(Header)的勉强解决方案