我正在使用SSRS中的一些JavaScript代碼在報告的新窗口中打開鏈接。報告鏈接指向服務器上的文件位置。我使用Reporting Services中的鏈接的代碼是:SSRS中的JavaScript不能正確處理數字符號
="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
在這種情況下,什麼獲取返回的網址是:
\\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。
任何想法都會受到歡迎。
只是一個問題,但如果你從文件名中省略#char會發生什麼? –
如上所述,頁面已成功呈現。但是,我無法更改文件名稱。 –