当用GridView导出Execl的时候,会发生只能在执行 Render() 的过程中调用 RegisterForEventValidation的错误提示。
有两种方法可以解决以上问题:
1.修改web.config(不推荐)<pages enableEventValidation ="false" ></pages>
2.直接在导出Execl的页面修改
<%@ Page Language="C#" EnableEventValidation = "false" AutoEventWireup="true"
CodeFile="ExportGridView.aspx.cs" Inherits="ExportGridView" %>
附:Gridview导出Execl可分页全部导出代码(C#)
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;
using
System.Data.SqlClient;
using
System.IO;
public
partial
class
EXportTest : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
![](https://i-blog.csdnimg.cn/blog_migrate/1417b8836334bfb7a2775d6f9403129f.gif)
BindData();
![](https://i-blog.csdnimg.cn/blog_migrate/68a356f120acfd0504f6e96f51170a67.gif)
}
![](https://i-blog.csdnimg.cn/blog_migrate/43e4c84da5f8f7fc19936d2104398360.gif)
}
private string ConnectionString
{
get { return @"Server=localhost;Database=Northwind;
![](https://i-blog.csdnimg.cn/blog_migrate/b6065d3aa608df4222b59ee84d495b35.gif)
Trusted_Connection=true
"; }
![](https://i-blog.csdnimg.cn/blog_migrate/ccd394092d13124c9f0ad9dd1651c10f.gif)
}
private void BindData()
{
// make the query
string query = "SELECT * FROM Categories";
![](https://i-blog.csdnimg.cn/blog_migrate/137708aab20c84845c6ba7cdbbdfcf9e.gif)
SqlConnection myConnection
= new SqlConnection(ConnectionString);
![](https://i-blog.csdnimg.cn/blog_migrate/ecfc6f6b3ffd48b52904781fbfd82fe9.gif)
SqlDataAdapter ad
= new SqlDataAdapter(query, myConnection);
![](https://i-blog.csdnimg.cn/blog_migrate/94d14b45b16257c7ac7692d1b5ed0a63.gif)
DataSet ds
= new DataSet();
![](https://i-blog.csdnimg.cn/blog_migrate/b6b36855a8be53daa4ce401840d7f79c.gif)
ad.Fill(ds,
"Categories");
![](https://i-blog.csdnimg.cn/blog_migrate/0ac936bfdb6d360d4a679b5460eb429a.gif)
GridView1.DataSource
= ds;
![](https://i-blog.csdnimg.cn/blog_migrate/7b1bc3bcac45c29cd1bcd54b108c55be.gif)
GridView1.DataBind();
/* It's a good idea if you can Cache the DataSet */
![](https://i-blog.csdnimg.cn/blog_migrate/6af49d9c08b5cc12fb6b5f051df35e39.gif)
}
public override void VerifyRenderingInServerForm(Control control)
{
// Confirms that an HtmlForm control is rendered for
the specified ASP.NET server control at run time.
![](https://i-blog.csdnimg.cn/blog_migrate/f70ceeb7623b3551bebcf9ab60ebc46e.gif)
}
protected void Button1_Click(object sender, EventArgs e)
{
![](https://i-blog.csdnimg.cn/blog_migrate/c400e8d5ac001cad8a149760ce358fb9.gif)
Response.Clear();
![](https://i-blog.csdnimg.cn/blog_migrate/c80926045f6f10386c039b427f753438.gif)
Response.AddHeader(
"content-disposition",
"attachment;filename=FileName.xls");
![](https://i-blog.csdnimg.cn/blog_migrate/f5e7464136f74a278d25014becfeccf6.gif)
Response.Charset
= "";
// If you want the option to open the Excel file without saving than
// comment out the line below
// Response.Cache.SetCacheability(HttpCacheability.NoCache);
![](https://i-blog.csdnimg.cn/blog_migrate/bee2a84c783eacabcce9033f90012750.gif)
Response.ContentType
= "application/vnd.xls";
![](https://i-blog.csdnimg.cn/blog_migrate/b2cda2a665d45da62172ceb3131a5cff.gif)
System.IO.StringWriter stringWrite
= new System.IO.StringWriter();
![](https://i-blog.csdnimg.cn/blog_migrate/a11a5721dc9c28c5540f989b66fd9946.gif)
System.Web.UI.HtmlTextWriter htmlWrite
=
new HtmlTextWriter(stringWrite);
// turn off paging
GridView1.AllowPaging = false;
![](https://i-blog.csdnimg.cn/blog_migrate/5d8b097ea9d433eb224f6d53e7f70f8c.gif)
BindData();
![](https://i-blog.csdnimg.cn/blog_migrate/e2849f04e14d20b8908aa6920177b0c0.gif)
GridView1.RenderControl(htmlWrite);
![](https://i-blog.csdnimg.cn/blog_migrate/0281a09bfeaf939131d21290d7c9818d.gif)
Response.Write(stringWrite.ToString());
![](https://i-blog.csdnimg.cn/blog_migrate/4903942dfebf2ccd285bb4ca6d048abb.gif)
Response.End();
// turn the paging on again
GridView1.AllowPaging = true;
![](https://i-blog.csdnimg.cn/blog_migrate/b7c5285d51fb90d456c83db8200b2fe1.gif)
BindData();
![](https://i-blog.csdnimg.cn/blog_migrate/da0d33935e5fda4a97e63c2796eb53fd.gif)
}
protected void GridView1_PageIndexChanging(object sender,
![](https://i-blog.csdnimg.cn/blog_migrate/4dabef08e7c4f41da9352d96643731f3.gif)
GridViewPageEventArgs e)
{
![](https://i-blog.csdnimg.cn/blog_migrate/e0580b8f6ba172b83033af6dc8a06ffe.gif)
GridView1.PageIndex
= e.NewPageIndex;
![](https://i-blog.csdnimg.cn/blog_migrate/b7423ca5f93286e3ee28206d03c40556.gif)
BindData();
![](https://i-blog.csdnimg.cn/blog_migrate/05dc25a4af649ba787de5dcc77d2aebb.gif)
}
![](https://i-blog.csdnimg.cn/blog_migrate/18d27d4670a1f9145d021c5873b7edf3.gif)
}
VB.net:(GridView直接帮定DataSource控件)
Imports
Microsoft.VisualBasic
Imports
System
Imports
System.IO
![](https://i-blog.csdnimg.cn/blog_migrate/3ecf3127f4158abd3ed9cbb7cc644a46.gif)
Partial
Class ManageContents
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
'If Not Me.IsPostBack Then
' If Request.QueryString("username") <> "xucanzhao" Then
' Response.Redirect("default.aspx?returnUrl=nousername")
' End If
'End If
' ClientScript.RegisterStartupScript(Me.GetType(), "haha", "<script>alert('haha');</script>")
End Sub
Protected Sub btnExportExcel_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnExportExcel.Click
![](https://i-blog.csdnimg.cn/blog_migrate/9830f20ae37fe287fe90b26b887571f5.gif)
Response.Clear()
![](https://i-blog.csdnimg.cn/blog_migrate/dc1124944f4a9ae85fd414b23ce8c9eb.gif)
Response.Buffer
= True
![](https://i-blog.csdnimg.cn/blog_migrate/8c8dc37b65a6d15c101686a52730cac7.gif)
Response.Charset
= "utf-8"
![](https://i-blog.csdnimg.cn/blog_migrate/a5798adea62bad873df7e41c5f4ace12.gif)
Response.AddHeader(
"Content-Disposition", "attachment;filename=FileFlow.xls")
![](https://i-blog.csdnimg.cn/blog_migrate/6d88963df306e53cea048eb4da508db9.gif)
Response.ContentType
= "application/ms-excel"
Dim strWriter As New StringWriter()
Dim htw As New HtmlTextWriter(strWriter)
![](https://i-blog.csdnimg.cn/blog_migrate/3fa16486c7dba83c505d46f26c4916f5.gif)
GridView1.AllowPaging
= False
![](https://i-blog.csdnimg.cn/blog_migrate/450450214818c0eacf519949c326aff0.gif)
GridView1.DataBind()
![](https://i-blog.csdnimg.cn/blog_migrate/bffb1e02e601cfeab6c0767b926420a8.gif)
GridView1.RenderControl(htw)
![](https://i-blog.csdnimg.cn/blog_migrate/30ad0f902ae965b9f76c70dc83c57616.gif)
Response.Write(strWriter.ToString)
![](https://i-blog.csdnimg.cn/blog_migrate/2add21a9ebe777db2587a66e23854261.gif)
Response.End()
![](https://i-blog.csdnimg.cn/blog_migrate/72b35fdd392fb6885bf408ba16ab9c60.gif)
GridView1.AllowPaging
= True
![](https://i-blog.csdnimg.cn/blog_migrate/058f3adce8b6d523a554d0fb7ee24998.gif)
GridView1.DataBind()
End Sub
Public Overrides Sub verifyRenderingInServerForm(ByVal control As Control)
End Sub
End Class