我有一个母版页,在顶部菜单中有一个帮助链接。此链接应包含当前页面的动态书签,以便用户滚动到当前正在查看的页面的帮助。如何在母版页中创建链接,其中包含当前页面的动态信息?
<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