gpt4 book ai didi

javascript - 响应对象未在更新面板中返回 Excel 流?

转载 作者:行者123 更新时间:2023-11-30 07:47:14 25 4
gpt4 key购买 nike

我在单击更新面板中的按钮后生成一个 Excel 文件。它抛出一个解析错误。请看下面的代码。

如果我将按钮放在更新面板之外,它就可以正常工作。为什么它在更新面板中不起作用?

Response.ContentType = "application/vnd.ms-excel"
Response.AddHeader("Content-Disposition",
String.Format("attachment;filename={0}", filename))
Response.Clear()
Response.BinaryWrite(WriteToStream.GetBuffer)
HttpContext.Current.ApplicationInstance.CompleteRequest()

Private Function WriteToStream() As MemoryStream
'Write the stream data of workbook to the root directory
Dim file As MemoryStream = New MemoryStream
hssfworkbook.Write(file)
Return file
End Function

最佳答案

您不应该覆盖更新面板的响应。 ASP 更新面板的工作方式、整个页面的执行以及更新面板中的部分从响应中提取并发送到客户端(作为对 XHRequest 的响应)。当您执行 Response.BinaryWrite 时,您将删除服务器期望能够解析它要发送的新标记的标准输出。

让按钮触发更新面板的唯一原因是您想要更改该面板中的内容。否则,只需确保该按钮不是面板的触发器即可。如果按钮必须保留在面板中,请将其作为 PostBackTrigger 添加到面板的触发器部分(注意缺少 Async)。

例如:

<asp:UpdatePanel ID="somePanel" UpdateMode="Conditional" runat="server">
</ContentTemplate>
changing content?
<asp:Button id="someButton" Text="click me!"
OnClick="someButton_Click" runat="server">
other changing content?
</ContentTemplate>
<Triggers>
<asp:PostBackTrigger ControlID="someButton" />
</Triggers>
</asp:UpdatePanel>

关于javascript - 响应对象未在更新面板中返回 Excel 流?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3909973/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com