zoukankan      html  css  js  c++  java
  • 当用GridView导出Execl的时候,会发生只能在执行 Render() 的过程中调用 RegisterForEventValidation的错误

    当用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)
    {
                BindData(); 
            }

        }

    private string ConnectionString
    {

    get { return @"Server=localhost;Database=Northwind;
            Trusted_Connection=true"; }

        }



    private void BindData()
    {
    // make the query 
    string query = "SELECT * FROM Categories";
            SqlConnection myConnection = new SqlConnection(ConnectionString);
            SqlDataAdapter ad = new SqlDataAdapter(query, myConnection);
            DataSet ds = new DataSet();
            ad.Fill(ds, "Categories");
            GridView1.DataSource = ds;
            GridView1.DataBind(); 

    /* It's a good idea if you can Cache the DataSet */

        }

    public override void VerifyRenderingInServerForm(Control control)
    {

    // Confirms that an HtmlForm control is rendered for
            the specified ASP.NET server control at run time.

        }

    protected void Button1_Click(object sender, EventArgs e)
    {
            Response.Clear();

            Response.AddHeader("content-disposition",
    "attachment;filename=FileName.xls");

            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);

            Response.ContentType = "application/vnd.xls";

            System.IO.StringWriter stringWrite = new System.IO.StringWriter();

            System.Web.UI.HtmlTextWriter htmlWrite =
    new HtmlTextWriter(stringWrite);

    // turn off paging 
            GridView1.AllowPaging = false;
            BindData(); 


            GridView1.RenderControl(htmlWrite);

            Response.Write(stringWrite.ToString());

            Response.End();

    // turn the paging on again 
            GridView1.AllowPaging = true;
            BindData();

        }

    protected void GridView1_PageIndexChanging(object sender,
        GridViewPageEventArgs e)
    {
            GridView1.PageIndex = e.NewPageIndex;
            BindData(); 
        }
    }

  • 相关阅读:
    logback.xml
    logback:RollingFileAppender
    logback :<include>
    logback:参数化日志打印
    logback:fileAppender输出到文件
    logback:root和logger
    logback console控制台输出
    logback encoder详细设置
    logback关闭日志
    IDEA+testng,输出没有test-output目录
  • 原文地址:https://www.cnblogs.com/suizhikuo/p/3482844.html
Copyright © 2011-2022 走看看