2013-01-08 126 views
1

我想單擊超鏈接並在新的彈出窗口中打開文件(無論文件)。通過點擊超鏈接打開文件不起作用

繼承人我的代碼:

HyperLink link = new HyperLink(); 
link.Text = dr.Dienstleistung.Dienstleistungsart.Dienstleister.Catering_Fax_Link; 
link.NavigateUrl = HttpContext.Current.Server.MapPath("~") + "\\CUSTOM\\Upload\\picture.png"; 
cell.Controls.Add(link); 

但它不與NavigateUrl工作。如果我點擊超鏈接沒有任何反應。誰能幫我這個。謝謝

+1

您是否確實閱讀過[MapPath'方法的文檔](http://msdn.microsoft.com/zh-cn/library/system.web.httpserverutility.mappath.aspx)? –

回答

3

MapPath給出物理路徑而不是url。此外,使用正確的斜線並將目標設置爲空白,以便鏈接將在新窗口中打開。例如,

link.NavigateUrl = ResolveUrl("~/CUSTOM/Upload/picture.png"); 
link.Target = "_blank"; 
+0

感謝您的幫助!它的工作 – Paks

+0

@VinayC我想你的代碼,但它不適用[我的情況](http://stackoverflow.com/q/29910618/2061309)。你能在這裏扔點光嗎? – aspiring

1

NavigateUrl是您將顯示給用戶的URL,而不是文件系統路徑。在你的情況下,它應該是:

link.NavigateUrl = "~/CUSTOM/Upload/picture.png"; 
2

您可以打開使用window.open一個彈出式窗口,而無需使用NavigateUrl屬性的文件。

link.Attributes.Add("onclick", "window.open('" + ResolveUrl("~/CUSTOM/Upload/picture.png") + "');");