2

我的问题看起来像这样。我有一个带有文档(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 来关闭它,但它只适用于加载页面上没有response.binarywrite的情况......

有什么想法可以实现我想要的吗?

4

1 回答 1

0

在方法 1 中。

尝试Response.End();Response.BinaryWrite(_excuteGetDocumentResult);

于 2011-04-11T12:14:08.940 回答