显示响应.Binarywrite在浏览器保存对话框或打开新窗口,保存后关闭

本文关键字:保存 窗口 新窗口 Binarywrite 响应 浏览器 对话框 显示 | 更新日期: 2023-09-27 17:49:35

问题是这样的。我有一个带有文档(Id)的网格。现在,当有人点击一行时,我希望允许他下载或显示该文档。不过为了更简单,假设我在点击按钮时这样做。我试了两种方法,但对我来说都不起作用。

  1. 我试图回应。在Binarywrite按钮上点击:

            Response.Clear();
            Response.ClearHeaders();
            Response.ClearContent();
            Response.ContentType = "application/postscript mime";
            Response.AddHeader("content-disposition", "attachment; filename=test.ps"); 
            Response.AddHeader("content-length", _excuteGetDocumentResult.Length.ToString());
            Response.ContentEncoding = new System.Text.UTF8Encoding();
            Response.BinaryWrite(_excuteGetDocumentResult);
    

但是什么都没有发生,当我试图修改这段代码时,我通常会得到一些javascript错误,说改变响应…

第二种方法是打开一个新窗口,在页面加载时添加上面的代码。

<asp:Button Text="ShowResult" OnClientClick="radopen('ShowResult.aspx','ShowDocumentDialog'); return false;"
        runat="server" />

第二种方法有效,但在保存或取消资源管理器保存文件对话框窗口后,我打开的窗口仍然存在。我试图添加一些javascript来关闭它,但它只适用于没有响应的地方。binarywrite在加载页面…

你知道我怎样才能达到我想要的吗?

显示响应.Binarywrite在浏览器保存对话框或打开新窗口,保存后关闭

方法1

try Response.End(); after Response.BinaryWrite(_excuteGetDocumentResult);