ASP按钮打开新窗口的SSRS报告与参数
本文关键字:SSRS 报告 参数 窗口 按钮 新窗口 ASP | 更新日期: 2023-09-27 18:10:47
我正在构建一个简单的ASP页面。. NET表单和c#后台代码。我需要一个按钮(或某种控制),将打开一个链接到一个新的窗口,我已经找到了代码,将使用Javascript做到这一点,我已经找到了代码,我可以使用我的按钮打开我的SSRS报告与参数从我的aspx页面动态传递。我还没有找到能同时处理这两个问题的方法。
我的asp表单开始与一个简单的文本框寻找NPI (ID类型)。该NPI用于搜索数据库和填充表单。我还希望在页面上有一个按钮,可以抓取用户输入的NPI,并将其传递到打开我的SSRS报告的新窗口。
我已经研究过这个,我知道我可以使用Javascript打开一个新窗口,这将是伟大的,但我不知道如何包括用户输入NPI到JS版本。我知道我不能使用隐藏代码打开一个新窗口,但是我可以使用Response。重定向以将NPI发送到SSRS报告的URL。我找不到两者的结合。
提前谢谢你。这是我第一次在StackOverflow上发帖,尽管我每天都在上面寻找答案。我为我搞砸的一切道歉。
The TextBox:
<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));
}
让我们尝试在一个新窗口中打开报告。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>");
在浏览了一些有类似问题的网站后,我找到了答案。我没有在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文本框的值赋给它。然后,在窗口。打开,如图所示,将变量W钉在末尾。
现在它将打开SSRS报告,并在加载时分配NPI参数。如果这太简单,我可以删除整个帖子。否则,我希望其他人发现有两种选择是有帮助的(回应)。