2
我的問題如下所示。 我有一個網格與文件(Id's)。現在,當有人點擊某一行時,我想讓他下載或顯示該文檔。但爲了讓它更加安全,讓我們假設我會在點擊按鈕時做到這一點。我嘗試了兩種方法,但他們都沒有從事我的工作。在瀏覽器中顯示Response.Binarywrite保存對話框或打開新窗口並保存後關閉
我試圖response.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錯誤說sommething有關更改響應...
socond方法是打開新窗口,並在頁面加載上面的代碼。
<asp:Button Text="ShowResult" OnClientClick="radopen('ShowResult.aspx','ShowDocumentDialog'); return false;"
runat="server" />
socond方法可行,但保存或取消資源管理器保存文件對話框窗口後,我的打開的窗口仍然存在。我試圖添加一些JavaScript來關閉它,但它只適用於沒有response.binarywrite在加載頁面上...
任何想法如何可以達到我想要的?
我得到JS錯誤 Sys.WebForms.PageRequestManagerParserErrorException:從服務器收到的消息無法解析。此錯誤的常見原因是,通過調用Response.Write(),響應篩選器,HttpModules或服務器跟蹤已啓用來修改響應時。 詳細信息:錯誤解析'II *'附近。 – shin 2011-04-11 12:21:14
這個網格在更新面板裏面嗎?如果是的話,首先嚐試刪除更新面板,你不能在更新面板(Ajax)內做這樣的事情 – 2011-04-11 12:35:35
這是一個Telerik radgrid,但使它更簡單我在按鈕單擊事件中做它,但它仍然失敗:/這就是爲什麼我想打開一些額外的窗口只有這個響應,但客戶端將不得不手動關閉它... – shin 2011-04-11 12:46:41