1 . Default.aspx页面代码:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="roomtype_Default" %>
<!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 id="Head1" runat="server">
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:GridView ID="GridView1" runat="server" AllowPaging="true" OnPageIndexChanging="Paging">
</asp:GridView>
</div>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="导出到Excel" />
</form>
</body>
</html>
2. Default.aspx.cs 代码:
using System;
using System.Data;
using System.Configuration;
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;
using System.Data.SqlClient;
using System.Xml;
public partial class roomtype_Default : System.Web.UI.Page
{
/// <summary>
/// 链接字符串
/// </summary>
public string ConnectString
{
get
{
// 获得连接字符串
return ConfigurationManager.ConnectionStrings["hotalConn"].ConnectionString;
}
}
/**/
/// <summary>
/// 重载VerifyRenderingInServerForm方法
/// 确认在运行时为指定的 ASP.NET 服务器控件呈现 HtmlForm 控件。
/// </summary>
/// <param name="control">ASP.NET 服务器控件,它必须位于 HtmlForm 控件中</param>
public override void VerifyRenderingInServerForm(Control control)
{
//base.VerifyRenderingInServerForm(control);
}
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
//加载数据
BindData();
}
}
/**/
/// <summary>
/// 绑定数据
/// </summary>
public void BindData()
{
// 查询
string query = "SELECT * FROM RoomType";
SqlConnection myConnection = new SqlConnection(ConnectString);
SqlDataAdapter ad = new SqlDataAdapter(query, myConnection);
DataSet ds = new DataSet();
ad.Fill(ds, "RoomType");
GridView1.DataSource = ds;
GridView1.DataBind();
}
/**/
/// <summary>
/// 内存分页
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Paging(object sender, GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
BindData();
}
/// <summary>
/// 导出Excel
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Button1_Click(object sender, EventArgs e)
{
Response.Clear();
Response.Buffer = true;
Response.Charset = "GB2312";
Response.AppendHeader("Content-Disposition", "attachment;filename=FileName.xls");
//gaoyang [10/21/2006] 经测试如果设置为 GetEncoding("GB2312"),导出的文件将会出现乱码。
Response.ContentEncoding = System.Text.Encoding.UTF7;
//设置输出文件类型为excel文件。
Response.ContentType = "application/ms-excel";
System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
this.GridView1.RenderControl(oHtmlTextWriter);
Response.Output.Write(oStringWriter.ToString());
Response.Flush();
Response.End();
}
}
上边的代码已经试验过了,运行没有问题,开发工具为VS2005