只能在执行 Render() 的过程中调用 RegisterForEventValidation
当在导出Execl或Word的时候,会发生只能在执行 Render() 的过程中调用 RegisterForEventValidation的错误提示。
有两种方法可以解决以上问题:
1.修改web.config(不推荐)<pages enableEventValidation ="false" ></pages>
2.直接在导出Execl的页面修改
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ExportWordByIO.aspx.cs" Inherits="_Default" EnableEventValidation = "false" %>
改了以后可以导出,但只能导出当前页的数据,这个问题如何解决
当在导出Execl或Word的时候,会发生只能在执行 Render() 的过程中调用 RegisterForEventValidation的错误提示。
有两种方法可以解决以上问题:
1.修改web.config(不推荐)<pages enableEventValidation ="false" ></pages>
2.直接在导出Execl的页面修改
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ExportWordByIO.aspx.cs" Inherits="_Default" EnableEventValidation = "false" %>
改了以后可以导出,但只能导出当前页的数据,这个问题如何解决
{
Export("application/ms-excel", "Employee information.xls");
}
/// <summary>
/// 定义导出Excel的函数
/// </summary>
/// <param name="FileType"></param>
/// <param name="FileName"></param>
private void Export(string FileType, string FileName)
{
//清楚分页
gvServer.AllowPaging = false;
bandServer();
Response.Clear();
Response.Buffer = true;
//设定输出的字符集
Response.Charset = "GB2312";
//解决导出到Excel2007乱码问题
Response.Write("<meta http-equiv=Content-Type content=text/html;charset=GB2312>"); //假定导出的文件名为盘点结果表.xls
Response.AppendHeader("Content-Disposition", "attachment;filename=" +
HttpUtility.UrlEncode(FileName, Encoding.UTF8).ToString());
//解决导出到Excel2007乱码问题
Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312"); //设置导出文件的格式
Response.ContentType = FileType;
//关闭ViewState
this.EnableViewState = false;
StringWriter stringWriter = new StringWriter();
HtmlTextWriter textWriter = new HtmlTextWriter(stringWriter);
gvServer.RenderControl(textWriter);
//把HTML写回浏览器
Response.Write(stringWriter.ToString());
Response.Flush();
Response.End();
gvServer.AllowPaging = true;//恢复分页
//为GridView重新绑定数据源
bandServer(); }
/// <summary>
/// 此方法必重写,否则会出错
/// </summary>
/// <param name="control"></param>
public override void VerifyRenderingInServerForm(Control control)
{
}
protected void Button4_Click(object sender, EventArgs e)
{
Export("application/ms-word", "服务信息表.doc");
}
这样可以导出分页的数据,刚刚解决的,