首页  ·  知识 ·  
Label
      编辑:  图片来源:网络

在一个asp.net 的应用中,经常要动态修改页面文件的标题,一个典型的例子就是,在一个页面设计导航的控件中,希望用户点选哪一个连接,在页面跳转的title里就显示相关的内容,举个例子,比如一个网站,有如下的网站架构:

有图书分类,下面再有中国图书,外国图书分类,则一般可以用树形或者asp.net 2.0的新增加的导航栏控件

(sitemap),来实现,比如


图书--->中国图书;

图书---->外国图书

等,而如果这个时候,能在注册页面的部分,也能显示比如"图书-->中国图书"这样,那就更加直观明显了,</P> <P>在asp.net 2.0中,我们可以使用<head>部分的服务端控件来实现了,首先,要添加标记</P> <P><head runat="server"></P> <P><BR>然后可以在page_load事件中,以如下形式改边其title的内容了,如</P> <P>Page.Header.Title = "The current time is: " & DateTime.Now.ToString() </P> <P>,也可以简单写成page.title.</P> <P><BR>然后,我们可以通过这样的办法,将其于sitemap控件结合了,实现方法如下:</P> <P><BR>Const DEFAULT_UNNAMED_PAGE_TITLE As String = "Untitled Page"</P> <P>    Const DEFAULT_PAGE_TITLE As String = "Welcome to my Website!!"</P> <P> </P> <P>    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load</P> <P>        'Set the page's title, if needed</P> <P>        If String.IsNullOrEmpty(Page.Title) OrElse Page.Title = DEFAULT_UNNAMED_PAGE_TITLE Then</P> <P>            If SiteMap.CurrentNode Is Nothing Then</P> <P>                Page.Title = DEFAULT_PAGE_TITLE</P> <P>            Else</P> <P>                Page.Title = GetPageTitleBasedOnSiteNavigation()</P> <P><BR>                'Can also use the following if you'd rather</P> <P>                'Page.Title = GetPageTitleBasedOnSiteNavigationUsingRecursion(SiteMap.CurrentNode)</P> <P>            End If</P> <P>        End If</P> <P>    End Sub</P> <P><BR>    Private Function GetPageTitleBasedOnSiteNavigation() As String</P> <P>        If SiteMap.CurrentNode Is Nothing Then</P> <P>            Throw New ArgumentException("currentNode cannot be Nothing")</P> <P>        End If</P> <P><BR>        'We are visiting a page defined in the site map - build up the page title</P> <P>        'based on the site map node's place in the hierarchy</P> <P><BR>        Dim output As String = String.Empty</P> <P>        Dim currentNode As SiteMapNode = SiteMap.CurrentNode</P> <P><BR>        While currentNode IsNot Nothing</P> <P>            If output.Length > 0 Then</P> <P>                output = currentNode.Title & " :: " & output</P> <P>            Else</P> <P>                output = currentNode.Title</P> <P>            End If</P> <P><BR>            currentNode = currentNode.ParentNode</P> <P>        End While</P> <P><BR>        Return output</P> <P>    End Function</P> <P><BR>在上面的代码中,首先预定义了两个常量,然后逐步建立sitemap的结点,一开始结点是null的,然后再调用</P> <P>GetPageTitleBasedOnSiteNavigation() 这个过程,在每建立一个sitemap的结点时,用字符串进行连接,最后返回给page.title即可实现,当然也可以用递归实现 </P> 本文作者:佚名 来源:http://www.stylecn.net/ <br> CIO之家 www.ciozj.com 微信公众号:imciow</span> </div> <div class="km-detail-panel-area-left-tagword"> <ul><span id="ctl00_ContentPlaceHolder1_lblKeyword"></span></ul></div> <div class="km-detail-panel-area-left-tool"> <input type="submit" name="ctl00$ContentPlaceHolder1$btnAddGoodScore" value="写得很好,赞一下!" id="ctl00_ContentPlaceHolder1_btnAddGoodScore" class="km-detail-panel-area-left-tool-button" />  <input type="submit" name="ctl00$ContentPlaceHolder1$btnAddFav" value="收藏起来" id="ctl00_ContentPlaceHolder1_btnAddFav" class="km-detail-panel-area-left-tool-favbutton" /> </div> <div class="km-detail-panel-area-left-annouce">免责声明:本站转载此文章旨在分享信息,不代表对其内容的完全认同。文章来源已尽可能注明,若涉及版权问题,请及时与我们联系,我们将积极配合处理。同时,我们无法对文章内容的真实性、准确性及完整性进行完全保证,对于因文章内容而产生的任何后果,本账号不承担法律责任。转载仅出于传播目的,读者应自行对内容进行核实与判断。请谨慎参考文章信息,一切责任由读者自行承担。</div> <div class="km-detail-panel-area-left-titlebar">延伸阅读</div> <div class="km-detail-panel-area-left-relative"> <ul> </ul> </div> </div> <div class="km-detail-panel-area-right"> <div class="km-detail-panel-area-right-title">也许感兴趣的</div> <div class="km-detail-panel-area-right-box"> </div> <div class="km-detail-panel-area-right-title">我们推荐的</div> <div class="km-detail-panel-area-right-box"> </div> <div class="km-detail-panel-area-right-title">主题最新</div> <div class="km-detail-panel-area-right-box"> </div> <div class="km-detail-panel-area-right-title">看看其它的</div> <div class="km-detail-panel-area-right-box"> <div class="km-detail-panel-area-right-title">收藏至微信</div> <div class="km-detail-panel-area-right-box" > <img id="ctl00_ContentPlaceHolder1_ImageCode" src="" /> </div> </div> </div> </div> </div> </form> </body> </html>