문제

나는 아주 간단한 것을 추가하고 있습니다 XsltListViewWebPart 신청 페이지로 이동합니다.다음과 같습니다:

XsltListViewWebPart lvWebPart = new XsltListViewWebPart { ChromeType = PartChromeType.None, ListUrl = "/somesite/list" };
Page.Controls.Add(lvWebPart);

모든 것이 잘 작동합니다(파일 다운로드, 폴더 생성, 다른 보기 선택 등). 그러나 폴더 링크에 잘못된 href가 있습니다.그들은 항상 루트 웹을 가리킵니다!

다음 예를 참조하세요.enter image description here

보시다시피 문서는 ../sites/sr/doclib/mydocument.docx에 올바르게 연결되지만 폴더를 볼 때 현재 있는 컨텍스트를 잊어버립니다. http://../sites/sr/_layouts/../../..Detail.aspx?RootFolder=..., 중요한 부분은 /sites/sr/)입니다.위에 표시된 대로 루트 사이트 모음 컨텍스트의 _layouts 폴더로 이동하려고 합니다. http://../_layouts/../../..Detail.aspx?RootFolder=...

또는 다시 요약하면 다음과 같습니다.

  • 신청 페이지 위치:
    • http://sp/sites/sr/_layouts/my/application/Detail.aspx
  • 내가 액세스하는 목록/doclib
    • http://sp/sites/sr/mylist
  • XsltListViewWebPart 내부 폴더의 URL
    • http://sp/_layouts/my/application/Detail.aspx?RootFolder=...
  • 폴더의 URL은 있어야 합니다.
    • http://sp/sites/sr/_layouts/my/application/Detail.aspx?RootFolder=...

키커는 다음과 같습니다.사용할 때 ListViewWebPart, 모든 것이 정상적으로 작동합니다!따라서 위의 XsltListViewWebPart 대신 ListViewWebpart를 사용하고 폴더가 작동하면 폴더에 내가 원하는 URL이 있는지 컨텍스트가 고려됩니다(http://../sites/sr/_layouts/../../..Detail.aspx?RootFolder=...

설정을 해보았습니다 웹 ID XsltListViewWebpart의 속성은 컨텍스트를 설정하기를 바라지만 운이 없습니다.이제 저는 이를 잘못 구성했거나 새로운 SharePoint 2010 XsltListViewWebPart에 버그가 있다고 생각합니다. 동일한 코드가 동일한 응용 프로그램 페이지의 ListViewWebPart에 대해 작동하기 때문입니다.

누군가가 이 문제를 확인할 수 있기를 바랍니다.

도움이 되었습니까?

해결책

간단히 말해서 응용 프로그램 페이지에서는 XsltListWebPart를 사용하지 마십시오.

다음은 몇 가지 요약된 설명입니다.

XsltListViewWebPart 및 기타 OOTB SharePoint 웹 파트(특히 복잡한 웹 파트)는 응용 프로그램 페이지 환경에서 작동하지 않는 것으로 보입니다.즉, 그곳에서는 테스트되지 않았으므로 작동성이 보장되지 않습니다.

이는 최소한 다음 MSDN 기사를 읽으면 간접적으로 확인할 수 있습니다.

..사이트 페이지는 동적 웹 파트와 같은 기능을 호스팅할 수도 있습니다. 웹 파트 영역.애플리케이션 페이지에서는 이러한 작업을 수행할 수 없습니다.

또한 MS 과정에도 명시되어 있습니다. 10232.

특히 XsltListViewWebPart(XLV)의 경우, Application Page에서 사용하면서 여러 가지 문제점을 들었고, 그 중 일부를 직접 경험하기도 했습니다.

예를 들어 XslLink 속성을 사용하여 XLV를 사용자 정의하는 경우 XLV는 xsl 파일을 캐시하지 못하며 결과적으로 ECB 및 리본의 해당 버튼이 작동하지 않습니다.로그에 다음과 같은 예외 메시지가 표시됩니다.

더 이상 존재하지 않는 개체를 사용하려고 했습니다.

또한 응용 프로그램 페이지(이번에는 ListViewWebPart)에서 OOTB 웹 파트 문제의 또 다른 예에 대해 다음 질문을 확인할 수 있습니다.

다른 팁

첫째, Andrey가 머리에 못을 박은 것 같습니다.또한 다음을 사용해 볼 수도 있습니다. ListViewByQuery 컨트롤 간단한 표 형식의 데이터 레이아웃(예:목록).Microsoft는 OOB 워크플로 상태 페이지에서 이 작업을 수행합니다(예:_layouts/wrkstat.aspx) 작업 표시용.

ECB 메뉴 등으로는 시도하지 않았지만 읽기 전용 데이터 목록에는 사용했습니다.폴더가 있는 문서 라이브러리에 사용하는 것처럼 들리므로 폴더, 정렬 및 페이징이 올바르게 작동하도록 하는 많은 코드 없이도 제대로 작동할지 확신할 수 없습니다.시도해 볼 가치가 있을 수도 있지만 사이트 페이지가 사용자 정의 코드를 적게 사용하는 더 나은 방법일 수 있으므로 많은 시간을 소비하지는 않을 것입니다.

ListViewByQuery를 사용하는 경우 페이징 등에 대한 다음 링크를 검토하세요.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 sharepoint.stackexchange
scroll top