报告服务-SSRS中的Javascript没有正确处理数字符号
reporting services - Javascript in SSRS not handling number sign correctly
我正在SSRS中使用一些JavaScript代码在报表的新窗口中打开链接。报表链接指向服务器上的文件位置。我在Reporting Services中使用的链接代码是:
="javascript:void(window.open('"+ "file:" & Replace(Fields!FilePath.Value,"'","/") + "','_blank'))"
当文件名为"正常"时,例如:,此代码工作正常
''myserver'images'Files'1969'1-000-002_SE 82ND AVE 1_1969.pdf
然而,当有特殊字符(至少是#)时,我会收到一条错误消息。事情就是这样。一个示例文件名是:
''myserver'images'Files'1978'1-001-003_SE 82nd AVE #12 1_1978.pdf
在这种情况下,返回的URL是:
''myserver'images'Files'1978'1-001-003_SE 82nd AVE
如图所示,URL在数字符号的第一个实例处被切断。如果我复制违规链接的快捷方式,这就是我得到的:
javascript:void(window.open('file://myserver/images/Files/1978/1-001-003_SE%2082nd%AVE%20#12%201_1978.pdf','_blank'))
JavaScript似乎对文件路径进行了正确编码,但在JavaScript代码和URL之间的转换中丢失了一些内容。
我无法更改文件名,所以我需要想出一种使用特殊字符的方法。我尝试过使用EncodeURI(),但不知道如何在SSRS中正确格式化它以使用现有的JavaScript。
任何想法都将受到欢迎。
URL将识别HTML字符号。因此,在JavaScript之外,为您期望找到的每个特殊字符使用SSRS替换函数,用相应的HTML数字代码替换每个字符。例如,英镑符号是%23;空间为%20。
请注意,我有一些页面使用磅符号来分割URL参数,在这种情况下,似乎不起作用。然而,它可能适用于您的情况。要尝试此操作,请将您的功能更改为以下内容:
="javascript:void(window.open('"+ "file:" & Replace(Replace(Fields!FilePath.Value,"'","/"),"#","%23") + "','_blank'))"
如果这对你有用,你可以在这里找到更多的代码。
相关文章:
- 如何正确处理依赖ViewChild和Angular 2中可观察到的数据的组件上的更改检测
- JQuery $.getJSON() 不能正确处理回调
- 如何正确处理承诺
- D3 图表过渡要么获得正确的数字或宽度,但不能同时获得两者
- 如何使用promise正确处理express.js中的错误(字符串或对象)
- jQuery和Ci没有正确处理注销功能
- 我怎样才能以非阻塞的方式处理数字
- Electron和Typescript:如何在运行时正确处理模块
- .size的变量获胜't显示正确的数字
- SAPUI5:正确处理点击事件
- 如何正确处理空的、遗漏的、默认的表单值
- 哪个 JS 日期时间选取器正确处理 DST 转换
- 通过参数更新数字变量的函数无法正确更新数字变量
- jQuery表单插件:如何正确处理从服务器发回的重定向请求
- 字符串分词器无法正确处理一行中的空标记或多个分隔符
- 如何正确处理JSON和HighCharts中的日期对象
- 在javascript中需要帮助包装函数并正确处理“this”
- 如何正确处理某些 html 标记
- 如何正确处理多个下拉按钮
- 报告服务-SSRS中的Javascript没有正确处理数字符号