程序沒有改動過運行一直正常,突然有一天同事告知出現錯誤了。經過檢查發現傳遞的數據中出現了#等特殊字符,浏覽器只取到#號前面的數據,後面的被截斷。然後首先想到先把數據用 Server.UrlEncode方法編碼一下,雖然可以看到特殊字符已經被編碼,可是正確的數據依然沒有傳遞過去,錯誤依舊。
復制代碼 代碼如下:
"JavaScript:window.showModalDialog('Info.aspx?bh=" + Server.UrlEncode(e.Row.Cells.FromKey("編號").Text.Trim()) + "‘,null,'dialogWidth:750px;dialogHeight:500px;center:yes;status:no;resizable:yes;');"
然後改用Escape方法後,參數傳遞正常:
復制代碼 代碼如下:
"JavaScript:window.showModalDialog('Info.aspx?bh='+ escape(\"" + e.Row.Cells.FromKey("編號").Text.Trim() + "\"),null,'dialogWidth:750px;dialogHeight:500px;center:yes;status:no;resizable:yes;');"
但是如果不是用模態窗口而直接把鏈接地址打開的話用Server.UrlEncode就沒有問題,很奇怪,哪位大濕能給指點一下