動的に作成されたテーブルを持つ UpdatePanel があり、セーブ ストリームを EPPlus の Excel 関数として使用しようとしています。SaveToExcel()
ただし、メソッドを呼び出すとエラーが発生し続けます。
空のWebサイトにある場合、このメソッドは正常に機能するため、ポストバック/ UpdatePanelと関係があると思います.
エラー:
Microsoft JScript runtime error: Sys.WebForms.PageRequestManagerParserErrorException: The message received from the server could not be parsed.
[動的]からのエラーの原因となっているコード:
function Sys$WebForms$PageRequestManager$_endPostBack(error, executor, data) {
if (this._request === executor.get_webRequest()) {
this._processingRequest = false;
this._additionalInput = null;
this._request = null;
}
var handler = this._get_eventHandlerList().getHandler("endRequest");
var errorHandled = false;
if (handler) {
var eventArgs = new Sys.WebForms.EndRequestEventArgs(error, data ? data.dataItems : {}, executor);
handler(this, eventArgs);
errorHandled = eventArgs.get_errorHandled();
}
if (error && !errorHandled) {
throw error;
}
}
これが私の方法を終了SaveToExcel()
する方法です:
Response.Clear();
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
Response.AddHeader("content-disposition", "attachment; filename=Bulk Swap HDDs.xlsx");
package.SaveAs(Response.OutputStream);
Response.End();
私が見逃していることは本当に明らかですか?SaveToExcel
を別の aspx ページに配置してを実行するPostBackUrl="~/SaveToExcel.aspx"
と、正常に動作します (ただし、送信ボタンがクラッシュします)。