一尘不染

Sys.WebForms.PageRequestManagerParserErrorException:无法解析从服务器收到的消息

c#

我的页面上有一个网格视图,我想将其导出到Excel工作表,下面是我为执行此任务而编写的代码,这里我已经将数据集传递给绑定网格的方法,并且btnExcelExport是按钮会将表格内容导出到Excel工作表中:

private void BindGridView(DataSet ds)
{
    if (ds.Tables.Count > 0)
    {
        if (ds.Tables[0].Rows.Count > 0)
        {
            GVUserReport.DataSource = ds;
            GVUserReport.DataBind();
            btnExcelExport.Visible = true;
        }
    }
}

protected void btnExcelExport_Click(object sender, EventArgs e)
{
    Response.Clear();
    Response.AddHeader("content-disposition","attachment;filename=FileName.xls");
    Response.Charset = "";
    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);
    GVUserReport.RenderControl(htmlWrite);
    Response.Write(stringWrite.ToString());
    Response.End();
}

public override void VerifyRenderingInServerForm(Control control)
{
    return;
}

现在,当我进行调试时,我发现网格已成功绑定,但是当尝试将其导出到Excel时,出现此错误:

“ Microsoft
JScript运行时错误:Sys.WebForms.PageRequestManagerParserErrorException:无法解析从服务器收到的消息。”


阅读 387

收藏
2020-05-19

共1个答案

一尘不染

我解决了这个问题。在使用时UpdatePanel,我Page_Load在页面事件中添加了以下代码,它对我有用:

protected void Page_Load(object sender, EventArgs e) {
  ScriptManager scriptManager = ScriptManager.GetCurrent(this.Page);
  scriptManager.RegisterPostBackControl(this.btnExcelExport);
  //Further code goes here....
}
2020-05-19