【问题标题】:Why does this JavaScript not work in my SSR Report为什么这个 JavaScript 在我的 SSR 报告中不起作用
【发布时间】:2021-08-13 12:44:23
【问题描述】:

我有一份 SSRS 报告,并希望在我的文本框中有一个超链接以打开网页。

这对我有用 ="http://devtrafficcomplaints/Complaint?CompId="+CStr(Fields!ComplaintID.Value) 但它在同一个窗口中打开。我想在新窗口中打开。

我尝试了下面显示的 JavaScript,但它不起作用,报告打开并且单元格显示图标指示它是一个超链接,但是当我单击时没有任何反应。

="javascript:void(window.open('http://devtrafficcomplaints/Complaint?CompId='+CStr(Fields!ComplaintID.Value)','_blank'))"

【问题讨论】:

标签: javascript reporting-services ssrs-2012 ssrs-2008-r2


【解决方案1】:

目前,URL 将包含双引号之间的确切内容,因此它会将“Cstr(....”作为 URL 的一部分。

试试下面的

="javascript:void(window.open('http://devtrafficcomplaints/Complaint?CompId=" + CStr(Fields!ComplaintID.Value) + "','_blank'))"

您需要将文本框的Action Property设置为“Go to URL”。

注意:如果您想对用户隐藏 URL,实际的文本框内容可能与 URL 完全不同 - 但一次一步!

然后将Action表达式设置为我上面所说的表达式。

您必须部署报告

该链接在 Visual Studio 的设计器中不起作用,需要部署报表,以便您可以在此链接起作用之前在浏览器中查看它。

【讨论】:

  • 不是拼写错误,是表达式结构错误
  • 也感谢您的回复。然而这也不起作用
  • @Perry - 我认为这只是缺少CompId= 之后的单引号。
  • 我已经用更多内容更新了答案。我专注于表达错误,但您可能还没有做一些事情。
【解决方案2】:

你有一个额外的单引号。

更正:

javascript:void(window.open('http://devtrafficcomplaints/Complaint?CompId='+CStr(Fields!ComplaintID.Value),'_blank'))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-27
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    • 2012-02-22
    相关资源
    最近更新 更多