2013-04-25 63 views
0

我正在建立一個頁面,是一個簡單的ASP.NET窗體與C#代碼隱藏。我需要一個可以打開新窗口鏈接的按鈕(或者某種控件),並且我已經找到了可以使用JavaScript的代碼,並且我找到了可用於使我的按鈕打開我的SSRS報告的代碼一個從我的aspx頁面動態傳遞的參數。我還沒有找到任何處理這兩個問題。ASP按鈕打開新窗口SSRS報告與參數

我的asp表單以一個簡單的文本框開始尋找一個NPI(ID的類型)。該NPI用於搜索數據庫和填充表單。我還希望在頁面上有一個按鈕,可以抓取用戶輸入的NPI,並將其傳遞到打開我的SSRS報告的新窗口。

我已經研究了這一點,我知道我可以使用Javascript打開一個新窗口,這將很棒,但我不知道如何將用戶輸入NPI包含到JS版本中。我知道我不能使用代碼隱藏來打開新窗口,但我可以使用Response.Redirect將NPI發送到SSRS報告的URL。我找不到這兩者的組合。

預先感謝您。這是我第一次在StackOverflow上發佈,儘管它每天都用它來獲取答案。我很抱歉我正在製作的任何錯誤。

文本框:

<asp:TextBox ID="NPI" runat="server" Width="144px"></asp:TextBox> 

的按鈕,當前打開我的SSRS報告:

<asp:Button ID="reports" runat="server" Text="View Reports" 
    onclick="reports_Click" /> 

這裏是按鈕的隱藏代碼:

protected void reports_Click(object sender, EventArgs e) 
{ 
    Response.Redirect("http://myReportServer/Pages/ReportViewer.aspx?%2fDRPreports%2fApplicantOverview&rs:Command=Render&npi=" + HttpUtility.UrlEncode(NPI.Text)); 
} 
+1

我有解決這個問題的方法,並且一旦足夠的時間讓我回答我自己的問題,我會將它作爲答案發布。這真的很簡單。 – 2013-04-25 15:43:10

回答

2

讓我們試試這個打開該報告在新窗口中顯示。在ASPX:

<asp:TextBox ID="txt" runat="server"></asp:TextBox> 
<asp:Button ID="take" runat="server" onclick="take_Click" Text="no"/> 

的ASPX.cs後面的代碼:

Response.Write("<script>window.open('../About.aspx?qs=" + txt.Text + "','_blank');</script>"); 
+0

謝謝你的回覆。我喜歡這是多麼簡潔。 – 2013-04-25 20:45:20

0

我能夠通過一些表示曾有類似的網站看完後找到了答案,雖然不完全一樣,問題。我沒有在StackOverflow上看到答案,所以不是刪除我的問題,我想我會提供一個解決方案,以防萬一它可能會有所幫助。

該解決方案非常簡單。正如原文所述,對於新窗口,不能使用代碼隱藏。只有在用戶離開頁面的情況下才能使用。對於新窗口,將按鈕代碼更改爲:

<asp:Button ID="reports" runat="server" Text="View Reports" 
    onclientclick="Navigate()" /> 

onclientclick現在引用需要打開一個新窗口的JS。該腳本:

<script type="text/javascript"> 
    function Navigate() { 
     var w = document.getElementById('NPI').value 
     window.open('http://MyReportServer/Pages/ReportViewer.aspx?%2fDRPreports%2fApplicantOverview&rs:Command=Render&npi=' + w); 
    } 
</script> 

正如你所看到的,這是沒有什麼比創建變量(W)和NPI文本框的值賦給它更多。然後,在window.open中,如圖所示將變量W加到最後。

現在它將打開帶有加載時分配的NPI參數的SSRS報告。如果這太簡單了,我可以刪除整個帖子。否則,我希望其他人發現在一個帖子中同時擁有兩個選項(response.redirect和JS open.window)會很有幫助。