我有一個母版頁,在頂部菜單中有一個幫助鏈接。此鏈接應包含當前頁面的動態書籤,以便用戶滾動到當前正在查看的頁面的幫助。如何在母版頁中創建鏈接,其中包含當前頁面的動態信息?
<a href="help.aspx#[NameOfCurentPage]">Help</a>
你會如何實現這個?
我有一個母版頁,在頂部菜單中有一個幫助鏈接。此鏈接應包含當前頁面的動態書籤,以便用戶滾動到當前正在查看的頁面的幫助。如何在母版頁中創建鏈接,其中包含當前頁面的動態信息?
<a href="help.aspx#[NameOfCurentPage]">Help</a>
你會如何實現這個?
您可以做的另一件事是通過內容頁面本身引用母版頁。
爲了讓我自己更輕鬆,我的母版頁本身創造一個公開訪問的方法:
Public Sub SetNavigationPage(ByVal LinkName As String)
DirectCast(Me.FindControl(MenuName), HyperLink).NavigateUrl = "help.aspx#" & LinkName
End Sub
然後在內容頁,我通過以下獲得母版頁的參考...
Dim myMaster As MasterPageClass = DirectCast(Me.Master, MasterPageClass)
myMaster.SetNavigationPage("CurrentPage")
我已經在三個多月的時間裏沒有寫過一行c#,但是您可以在masterpage(OnLoad)中掛接一個事件並從那裏設置鏈接。查看ContentPlaceholder的主要頁面中的內容並獲取其類型或名稱,然後將其應用於鏈接。
我會使用「Request.PhysicalPath」來獲取請求的物理路徑,然後在您的幫助HMTL中,您可以通過他們關於什麼頁面來表示這些部分。
你可能會去儘量使用:
Path.GetFileName(Request.PhysicalPath).ToUpper()
數據標準化的。使用PhysicalPath將允許您擁有母版頁中的所有邏輯;這將消除在所有內容頁面中編寫代碼的需要。只是我的偏好。
將
<a href="help.aspx#<%= Path.GetFileName(this.Page.Request.FilePath) %>">Help</a>
到母版,然後錨固在幫助頁面上格式:
<a name="page1.aspx" />Blah, blah
<a name="page2.aspx" />Blah, blah
如果重複子頁面的名稱,例如,Sub1的/ page1.aspx這個和分公司2/page1.aspx這個 - 你必須要稍微更聰明。
這很不錯(我會選擇ToLower()),但它不會給你訪問該頁面或它的屬性等只是一個文件名,很可能與類名相同(在99.99 %的情況下可能) – Kris 2008-10-22 20:32:48
我不認爲你需要任何訪問頁面的屬性,我喜歡他的是你會寫在母版頁的邏輯,然後任何使用該主頁的頁面將獲得此功能。您不必在每個內容頁面中放置邏輯。 – JPrescottSanders 2008-10-22 20:43:41