export GridView to excel

最近開始整理GridView綁定數據的方法
恰好在網上看到一支GridView數據寫入excel的方法
故而將傳好的數據使用打開excel
卻卡了一下午也沒有debug成功。。。
下面附上代碼:
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Web.Configuration;
using System.Data.SqlClient;
using System.IO;
using System.Globalization;

public partial class GridView_GridView : System.Web.UI.Page
{
         string source = WebConfigurationManager.ConnectionStrings[ "KPRCSConnectionString"].ConnectionString;
         protected void Page_Load( object sender, EventArgs e)
        {
                GridBind();
        }
         protected void GridBind()
        {
                SqlConnection conn = new SqlConnection(source);
                conn.Open();
                 string select = "select * from Relabel";
                SqlDataAdapter da = new SqlDataAdapter(select, conn);
                DataSet ds = new DataSet();
                da.Fill(ds);
                GV1.DataSource = ds;
                GV1.DataBind();
        }
         protected void GV1_pageIndexChanging( object sender, GridViewPageEventArgs e)
        {
                GV1.EditIndex = -1;
                GV1.PageIndex = e.NewPageIndex;
                GridBind();
        }
         public override void VerifyRenderingInServerForm(Control control)
        {
                 //註釋掉下面的代碼,不然在asp.net2.0下會報錯(注:GridView是asp.net 2.0下的控件,1.1下一些控件也能夠導出成Excel或者Word)
                 //base.VerifyRenderingInServerForm(control);
        }

         protected void expExcel_Click( object sender, EventArgs e)
        {
                Response.Clear();
                Response.BufferOutput = true;
                Response.Charset = "GB2312";
                Response.AppendHeader( "Content-Dispositio", "p_w_upload;filename=FileName.xls");
                Response.ContentEncoding = System.Text.Encoding.GetEncoding( "GB2312");
                Response.ContentType = "application/ms-excel";
                EnableViewState = false;
                CultureInfo cultureInfo = new CultureInfo( "ZH-CN", true);
                StringWriter stringWriter = new StringWriter(cultureInfo);
                HtmlTextWriter textWriter = new HtmlTextWriter(stringWriter);
                GV1.RenderControl(textWriter);
                Response.Write(textWriter.ToString());
                Response.End();
        }
}
 
錯誤以下: RegisterForEventValidation 只能在 Render(); 期間呼叫
根據搜索找到的問題解決方法以下:
1:在.aspx的頁面題頭<%Page ...>的地方添加EnableEventValidation = "false" AutoEventWireup="true",懷着僥倖的心理debug了下,卻傷心的遇到了下面的問題,web頁面上顯示以下:
文件的最上層無效。處理資源 'http://localhost:6075/mySkills/GridView/GridView.aspx' 發生錯誤。第 1 行, 位置 1
System.Web.UI.HtmlTextWriter
^
這讓我情何以堪呀~~~等待解決中【抽泣】
相關文章
相關標籤/搜索