문제

이상한 동작이있는 게시 사이트에 대한 페이지 레이아웃이 있습니다.

다음 페이지 (Page1 [Default], Page2 및 Page3가있는 서브 사이트 (Subsite1)가있는 게시 사이트 (사이트)를 상상해보십시오.

2 페이지와 3 페이지의 경우 Breadcrumb이 올바르게 렌더링됩니다.

site > subsite1 > page2 
site > subsite1 > page3

그러나 기본 페이지의 경우 Breadcrumb은

site > subsite1

기본 페이지의 제목을 표시하도록 강요하는 방법도 아십니까?

도움이 되었습니까?

해결책

많은 검색과 반복적으로 실패한 후 나는 Ajax 포함을 사용하기로 결정했습니다. 누군가가 Devils Language (vb.net)를 사용한 것에 대해 저를 표시하기 전에이 코드를 사용하고있는 다른 개발자가 있었기 때문에 그것을 읽을 수 있어야했기 때문에 그것을 사용했습니다.

포함은 다음과 같습니다.

  1. 현재 URL을 구성 부품으로 분할하십시오
  2. 각 부품에 대해 SharePoint URL 및 SharePoint 웹을받습니다.
  3. SharePoint 웹의 제목을 인쇄하십시오
  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
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top