转到 URL 不适用于具有 # 个字符的 URL
Go to URL not working for URL having # character
我已经在我的文本框上定义了一个转到 URL 的操作。为此,我使用了 Go to URL in Action。下面是我在 Expr.
中的代码
="javascript:void(window.open('"+Parameters!url.Value+"'))"
问题是,如果 URL 在参数中有 # 字符,那么 URL 不起作用,并给我一个错误:
The 'Team' parameter is missing a value.
我知道需要对特殊字符进行编码,我正在尝试替换 # 字符,但这不起作用。
在这里您可以看到参数 Team
的值为 #LetsDoIt
。出于演示目的,我正在使用它,但在现场它来自报告参数组合。仅当 Team
参数的值中包含 # 时,我才会遇到问题。
感谢任何帮助。
基于此:
您需要继续使用urlencoding,但实际上您需要在SSRS报告中对其进行解码。
所以,继续使用这个:
="javascript:void(window.open('"+Replace(Parameters!url.Value,"#","%23")+"'))"
但是在实际的 SSRS 报告中(或多或少来自 MSDN link)
"Go to Data set, right click -> go to Properties -->go to Parameters tab--> change expression of parameter value to"
=Replace(Parameters!Parameter_Name.Value,"%23","#")
.. 意思是在您实际的 SSRS 报告中您需要识别 %23
并将其改回 #
请以后不要写'does not work'。实际花时间观察、理解和描述问题
最后我在 link provided by Nick 的帮助下找到了解决方案。
问题 :我用 %23
替换了 #
来编码 #
但是当 URL 被点击时编码文本 %23
被解码回 #
,这破坏了 link 的功能。
因此,我为此使用了双重编码,我将 #
替换为 %2523
,如下所示:
="javascript:void(window.open('"+Replace(Parameters!url.Value,"#","%2523")+"'))"
所以现在当谈到 URL 时,它只被解码一次。所以最后的 URL 是:
https://localhost:80/ReportServer/Pages/ReportViewer.aspx?/Reports/End+Dashboard+-+Drilldown&Sprint=10.5&Team=%23LetsDoIt&Type=Drilldown
效果很好。
我已经在我的文本框上定义了一个转到 URL 的操作。为此,我使用了 Go to URL in Action。下面是我在 Expr.
中的代码="javascript:void(window.open('"+Parameters!url.Value+"'))"
问题是,如果 URL 在参数中有 # 字符,那么 URL 不起作用,并给我一个错误:
The 'Team' parameter is missing a value.
我知道需要对特殊字符进行编码,我正在尝试替换 # 字符,但这不起作用。
在这里您可以看到参数 Team
的值为 #LetsDoIt
。出于演示目的,我正在使用它,但在现场它来自报告参数组合。仅当 Team
参数的值中包含 # 时,我才会遇到问题。
感谢任何帮助。
基于此:
您需要继续使用urlencoding,但实际上您需要在SSRS报告中对其进行解码。
所以,继续使用这个:
="javascript:void(window.open('"+Replace(Parameters!url.Value,"#","%23")+"'))"
但是在实际的 SSRS 报告中(或多或少来自 MSDN link)
"Go to Data set, right click -> go to Properties -->go to Parameters tab--> change expression of parameter value to"
=Replace(Parameters!Parameter_Name.Value,"%23","#")
.. 意思是在您实际的 SSRS 报告中您需要识别 %23
并将其改回 #
请以后不要写'does not work'。实际花时间观察、理解和描述问题
最后我在 link provided by Nick 的帮助下找到了解决方案。
问题 :我用 %23
替换了 #
来编码 #
但是当 URL 被点击时编码文本 %23
被解码回 #
,这破坏了 link 的功能。
因此,我为此使用了双重编码,我将 #
替换为 %2523
,如下所示:
="javascript:void(window.open('"+Replace(Parameters!url.Value,"#","%2523")+"'))"
所以现在当谈到 URL 时,它只被解码一次。所以最后的 URL 是: https://localhost:80/ReportServer/Pages/ReportViewer.aspx?/Reports/End+Dashboard+-+Drilldown&Sprint=10.5&Team=%23LetsDoIt&Type=Drilldown 效果很好。