2009-11-27 3 views
8

게시 사이트의 경우 현재 페이지가 편집 모드 인 경우 SPContext.Current.FormContext.FormMode 열거 형을 사용합니다. 나는 이것이 현재 작업하고있는 팀 사이트에서 작동하지 않는다는 것을 알았다. FormMode는 항상 'Invalid'로 설정됩니다.비 게시 사이트에서 페이지가 편집 모드인지 확인하는 방법

그러나 샘플 페이지에서 편집 페이지를 클릭하면 페이지가 편집 모드로 전환되므로 페이지가 편집 모드임을 알 수있는 다른 방법이 있어야합니다. 그렇다면 팀 사이트에있는 페이지의 편집 모드에 있는지 어떻게 알 수 있습니까?

건배. Jas.

답변

8

제 시나리오의 경우 WebPartManager 개체를 사용하여 현재 페이지가 편집 모드인지 확인할 수 있습니다.

Dim wpm As WebPartManager = WebPartManager.GetCurrentWebPartManager(Page) 

result = wpm.DisplayMode.Name.Equals("design", StringComparison.InvariantCultureIgnoreCase) 

위 코드는 webpart 영역이 디자인 모드에 있으므로 현재 페이지가 편집 모드인지 여부를 알려줍니다. 디자인 모드가 아닌 경우 DisplayMode은 일반적으로 '찾아보기'입니다.

+0

그것은 "디자인"과 "편집"경우 모두 커버로 wpm.DisplayMode.AllowPageDesign을 확인하는 것이 좋습니다 - 중 두 번째로, 디자인 모드에서 첫 번째 경우 웹 파트 영역에 자사의 웹 파트가 편집 모드에 있습니다. 두 경우 모두 페이지가 편집 모드에 있음을 나타냅니다. – Andrey

2

SPContext.Current.FormContext.FormMode는 OnInit에서 사용할 수 없습니다. 거기에는 항상 유효하지 않습니다. 나중에 시도해보십시오. 예를 들어 OnPreRender에서 사용합니다.

WebPartManager.DisplayMode를 사용하여 편집기 부분이 편집기 영역에서 활성화되어 있는지 확인할 수 있습니다. 추가 사항입니다. 페이지를 편집 모드로 만들 수 있습니다. 시나리오에서 확인하고 싶은 내용에 따라 다릅니다.

그런데 비교를 위해 읽기 전용 멤버 (예 : wpm.DisplayMode == WebPartManager.EditDisplayMode)를 사용하십시오.

--- Ferda Prantl

관련 문제