最近开始整理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
转载于:https://blog.51cto.com/larkin/518769