2010-03-05 107 views
4

我的網頁上的以下兩個控件:asp.net LinkBut​​ton的超鏈接問題

<asp:LinkButton ID="OpenLB" runat="server" >Open</asp:LinkButton> 
<asp:HyperLink ID="OpenHL" runat="server">Open</asp:HyperLink> 

我的頁面加載過程中設置他們是這樣的:

OpenLB.PostBackUrl = @"file:\\web\documents-emails\doc1.docx"; 
OpenHL.NavigateUrl = @"file:\\web\documents-emails\doc1.docx"; 

OpenHL的作品,它打開Word文件。

OpenLB不工作,當我點擊它,我得到一個錯誤彈出窗口,上面寫着:

的Windows Internet Explorer找不到 文件 「文件:// //網頁文件,電子郵件/ /doc1.docx」。 確保路徑或Internet地址 正確。

它看起來像url是不同的或什麼的,我該如何解決這個問題?

回答

6

LinkBut​​ton通過使用給定的URL將網頁發回服務器來工作。它以超鏈接的樣式顯示按鈕,但使用javascript將表單發回到給定url處的服務器。由於您無法發佈到本地文件,因此您無法將其與file:網址一起使用。 HyperLink只是創建一個錨,導致瀏覽器的位置被點擊時被設置爲url。

+0

同意。 PostBackUrl的要點是允許您的表單回傳到另一個網址,而不是回發到網頁本身的默認操作。 – smencer 2010-03-05 19:41:49

0

我認爲它只是在一個情況下,你導航到該文件,其內容會預期其他的你都要求它到的docx文件,當它應該是一個有效的URL

0

鏈接按鈕的默認行爲是回發到aspx頁面以處理回發事件以響應最終用戶單擊該鏈接。默認情況下,postbackurl爲空,表示鏈接帖子回到當前頁面。設置postbackurl屬性用於跨頁面回發,在這種情況下,您將處理另一個apsx頁面上的點擊事件。

MSDN Postbackurl Property

2

一個HyperLink設計鏈接到其他網頁或文件。它只是一個<a>標籤的包裝。

A LinkButton旨在回發頁面並在服務器端激發事件。

首先確保您在每種情況下都使用正確的控件類型。

相關問題