【问题标题】:ASP button to open new window to SSRS report with parameterASP 按钮打开带有参数的 SSRS 报告的新窗口
【发布时间】:2013-04-25 12:31:32
【问题描述】:

我正在构建一个带有 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));  
}

【问题讨论】:

  • 我有这个问题的解决方案,一旦有足够的时间让我回答我自己的问题,我将把它作为答案发布。真的很简单。

标签: c# javascript asp.net reporting-services


【解决方案1】:

让我们试试这个以在新窗口中打开报告。 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>");

【讨论】:

  • 感谢您的回复。我喜欢它的简洁性。
【解决方案2】:

在阅读了许多存在类似但不确切问题的网站后,我能够找到答案。我没有在 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)会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-14
    • 2013-06-13
    • 1970-01-01
    • 1970-01-01
    • 2020-12-13
    • 2011-03-17
    相关资源
    最近更新 更多