在浏览器保存对话框中显示Response.Binarywrite或打开新窗口并在保存后关闭

时间:2011-04-11 09:54:49

标签: c# .net asp.net response.write

我的问题看起来像这样。 我有一个带文件的网格(Id's)。现在,当有人连续点击时,我想允许他下载或显示该文档。但为了让它变得更好,我们可以说我会按下按钮。我尝试了两种方法,但没有一种方法可以形成我。

  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);
    
  2. 但没有任何反应,当我尝试修改此代码时,我通常会收到一些javascript错误,说明有关更改响应的错误......

    socond方法正在打开新窗口,并在页面加载时添加上面的代码。

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

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

    任何想法我怎么能得到我想要的?

1 个答案:

答案 0 :(得分:0)

方法1。

Response.End();

之后尝试Response.BinaryWrite(_excuteGetDocumentResult);