最近开始整理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();
}
}
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