0

我正在构建一个带有 C# 代码隐藏的简单 ASP.NET 表单的页面。我需要一个按钮(或某种控件)来打开指向新窗口的链接,并且我找到了可以使用 Javascript 执行此操作的代码,并且我找到了可用于使我的按钮打开我的 SSRS 报告的代码从我的 aspx 页面动态传递的参数。我还没有找到任何东西来处理这两个问题。

我的 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));  
}
4

2 回答 2

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>");
于 2013-04-25T19:32:35.257 回答
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)会有所帮助。

于 2013-04-25T20:41:52.990 回答