2013-03-26 66 views
2

我正在嘗試製作一個按鈕,點擊時調用一個過程,但也會在彈出窗口中打開。我無法找到如何做到這一點,因爲我所做的搜索只告訴我把它放在TE clientclick:Asp.net c#按鈕點擊調用過程,同時在target_blank中打開

<asp:Button ID="cmbGen" runat="server" Width="240px" Text="Générer le rapport"   OnClick="cmbGen_Click"></asp:Button> 

的onclick打開一個PDF格式,它不是即運作良好,所以,要解決這個我想在pdf中彈出打開

不知道我能做些什麼..任何人有想法?

編輯

的代碼是相當大的,但basicaly,這取決於checkboxed進行了檢查,它會創建一個PDF文件並顯示它。這個工作得很好,但在當前頁面打開了,我想使它在彈出

+0

有沒有機會看到你的C#代碼? – Liam 2013-03-26 14:21:37

回答

3

看不到你的C#所以它肯定你想要什麼不是100%,但爲什麼要使用asp:Button在所有:

<a href="myPDF.pdf" target="_blank">Générer le rapport</a> 
+0

代碼非常大,但基本上,取決於checkboxed被檢查的內容,它會創建一個pdf文件並顯示它。這工作得很好,但它打開了當前頁面,我想使它彈出 – 2013-03-26 14:27:16

+0

我可以使用鏈接,但我不知道我會在使用其他的東西,然後按鈕獲得什麼。 – 2013-03-26 14:30:06

+0

@ Charles-OlivierGosselin:您可以從鏈接到該網頁的頁面中獲得報告生成功能的分離,從而使您可以通過其他任何方式鏈接到該網頁。你可能永遠都不需要,但關注的分離是件好事。您還可以獲得使用'target'屬性的能力,因爲控制什麼是新窗口,什麼不是客戶端問題。 – David 2013-03-26 14:31:50

4

一個Button總是提交回發到當前窗口中的服務器,所以你不能直接扎一個新的窗口吧。你需要編寫一些JavaScript來做到這一點,並打開一個彈出窗口。

您可以通過很多方式來完成這項工作 - 您可以將一個事件處理程序連接到按鈕上,當它被點擊時,它立即打開一個新窗口,並且該窗口指向返回PDF的服務器代碼。或者你可以做一個普通的回發,並返回一些JavaScript彈出一個新的窗口。但無論哪種方式,JavaScript是從表單按鈕獲取彈出窗口的唯一方法。

利亞姆建議製作鏈接而不是按鈕可能是最簡單的方法 - 您可以在該鏈接上放置圖像,使其看起來像按鈕,如果你想。

編輯 基於對對方的回答您的意見,您最簡單的選擇將是返回按鈕點擊方法一些JavaScript,使用ClientScript.RegisterStartupScript或任何微軟建議這些天。您可以先執行任何需要的邏輯,然後通過會話或查詢字符串參數將其轉換爲新的處理程序,並讓客戶端彈出一個指向該處理程序的新窗口。

+0

+1完全同意,打算刪除我的答案,但注意到你引用了它。 – Liam 2013-03-26 14:31:13

+0

@Liam謝謝,我要試試這個 – 2013-03-26 14:32:41