2008-10-27 101 views
0

我有一个奇怪的行为的发布网站的页面布局。MOSS 2007面包屑问题

想象一下,一个发布网站(网站)与子网站(subsite1的),它具有以下几页(第1页[默认],第2页和第3页)

2页和第三页面包屑正确呈现:

site > subsite1 > page2 
site > subsite1 > page3 

但是默认页面的面包屑只呈现为

site > subsite1 

不知道如何迫使它显示的默认页面的标题呢?

回答

0

经过多次搜索和重复失败后,我决定使用AJAX包括。在使用魔鬼语言(VB.Net)之前,我只使用它,因为我有其他开发人员正在使用和维护此代码,所以他们必须能够读取它...

包括确实以下内容:

  1. 分割当前链接到它的组成部分
  2. 对于每个部分获得的Sharepoint URL和Sharepoint网站
  3. 打印的SharePoint Web
  4. 如果部件是一个网页的标题,获得页面标题并打印

这个心不是最终的代码(我要去重构它今晚):

Dim lsPage = Request.Item("CurrentPage") 
    Dim TravelURL as string = "http://site/" 
    Dim aryURLSections() = lsPage.Replace(TravelUrl, "").Split("/") 
    Dim i as integer 

    Response.Write("<span class='breadcrumbCurrent'>You are in &gt;</span> <span class='ms-sitemapdirectional'><a href='" & TravelUrl & "' title='Home'>Home</a> &gt; </span>") 

    for i = 0 to (aryURLSections.Length -1) 
    Dim PositionString as string = aryURLSections(i) 
    if PositionString.Contains(".aspx") then 
     'Render page 
     Dim psite as SPSite = new SPSite(TravelUrl) 
     Dim pobjSite As SPWeb = psite.OpenWeb() 
     Dim lList as SPList 
     Dim lPage As SPListItem 
     lList = pobjSite.Lists("Pages") 
      If Not lList Is Nothing Then 
       For Each lPage In lList.Items 
       IF lsPage.ToUpper.Contains(lPage.Url.ToUpper) Then 
       Response.Write("<span class='breadcrumbCurrent' >" & lPage.Title & "</span>") 
       Else 
       'Response.Write("<br>" & lPage.Url & " " & lsPage) 
       End If 
      Next 
     End if 
    Else if PositionString.Equals("Pages") 
     ' do nothing 
    else 
     'render site 
     TravelUrl = TravelUrl & PositionString & "/" 
     'Response.Write(TravelUrl & " > ") 
     Dim site as SPSite = new SPSite(TravelUrl) 

     Dim objSite As SPWeb = site.OpenWeb() 
     Dim PubWeb = PublishingWeb.GetPublishingWeb(objSite) 

     Response.Write("<span class='ms-sitemapdirectional'><a href='" & TravelUrl & "' title='" & PubWeb.Title & "'>" & PubWeb.Title & "</a> &gt; </span>") 
    End if 

    Next i