在SSRS中渲染HTML链接会忽略目标属性

Has*_*dad 2 html sql-server-2008 reporting-services ssrs-2008

我正在使用SQL Reporting Services 2008 R2,并且在我的一个报告中,我使用占位符文本来呈现html链接(锚定)以在另一个窗口中打开页面,表达式文本如下:

="<a target='_top' href=""http://www.google.com""  >Print</a>"
Run Code Online (Sandbox Code Playgroud)

但是,当报表在浏览器中呈现时,target='_blank'则不存在,就像SSRS呈现器忽略它一样。

我尝试过使用JavaScript在新窗口中打开,但是在客户端计算机上不起作用,因为我将SSRS报告托管在另一个Web应用程序中托管的Iframe中,并且Web应用程序和SSRS报告服务器都是在不同的域上。根据此链接使用JavaScript无法解决此问题

所以问题是为什么SSRS渲染器会忽略我的target =“ _ blank”属性

小智 6

如果在ASP.NET页面中使用reportviewer控件,则还可以设置属性HyperlinkTarget =“ _ blank”将此属性应用于页面上的所有链接,而无需使用javascript调用。


Ron*_*ith 5

我之前使用javascript完成过此操作。在链接的“文本框”属性的“操作”选项卡上,选择“转到URL”。然后在“选择URL”表达式中输入此脚本:

javascript:void(window.open('http://www.google.com', '_blank'))
Run Code Online (Sandbox Code Playgroud)

如果您需要数据集传递URL,则可以执行以下操作:

="javascript:void(window.open('" & Fields!YourURL.Value & "', '_blank'))"
Run Code Online (Sandbox Code Playgroud)

  • @HassanMokdad 指的是您发布的链接,使用 `a href` 和使用 JavaScript 操作的最佳媒介是将 JavaScript 操作嵌入为 HREF:`="&lt;a href=""javascript:void(window .open('http://www.google.com/'), '_blank')""&gt;文本框文本&lt;/a&gt;"`(这是在文本框表达式中完成的) (2认同)

Has*_*dad 5

我终于在朋友的帮助下找到了它,要强制SSRS报告在新窗口中打开链接,只需将以下查询字符串参数添加到报告的URL中即可:&rc%3ALinkTarget=_blank 因此例如最终url将是:

http://myreportserver/ReportServer?/MainSSRSFolder/MyReport&rc%3ALinkTarget=_blank
Run Code Online (Sandbox Code Playgroud)

这将使 SSRS 报告中的所有链接在新窗口中打开