2011-09-27 2 views
1

Sitecore에서 작성한 내 웹 사이트의 페이지 측면에 "설명 선"으로 사용되는 많은 비 페이지 콘텐츠 항목이 있습니다. 이상적으로이 콜 아웃의 프리젠 테이션 정보를 독립적으로 정의 할 수 있기를 바랍니다. 그런 다음 CMS 제작자가 사이트의 특정 페이지에 대한 설명 선을 선택하면 자신을 표시하는 방법을 알고 있습니다. 나는 이것을 위해 어떻게해야하는지에 대한 훌륭한 블로그 포스트를 여기에서 읽었다 : http://www.awareweb.com/AwareBlog/InversionControl2.aspx. 나는 그 글에서 그가 묘사 한 첫 번째 방법을 사용했다.Sitecore의 Inversion of Control 개념을 사용하여 페이지 이외의 항목을 표시하려면 어떻게해야합니까?

그러나 코드를 완벽하게 구현하지 못했습니다. 올바른 렌더링을 얻은 것으로 보이며 선택한 비 페이지 콜 아웃 항목을 통해 올바르게 반복됩니다. 그러나 페이지에 표시 할 때 설명 선 항목은 예제 코드 에서처럼 strDataSource 변수를 통해 전달 된 소스 항목이 아니라 Sitecore.Context.Item을 소스 항목으로 사용하고있는 것처럼 보입니다.

설명 문구의 하위 레이아웃에 대해 Sitecore.Context.Item을 사용하지 말고 대신 전달 된 소스 항목을 사용하도록 지시하려면 특별한 코드를 사용해야합니까? 그렇지 않으면 왜 작동하지 않는지 알 수 없습니다. 어떤 아이디어?

감사는 sublayout에 DataSource 설정 코리는

답변

4

명시 적으로 다른 값으로 Context.Item은, 그냥 그 자체를 사용할 수있는 sublayout의 속성을 설정 설정하지 않습니다.

다시 솔루션을 쓰기보다는, 존 웨스트의 블로그는 여기에 이미이 주제를 다루고, 그래서 나는 당신이 읽을 것을 권 해드립니다 - http://www.sitecore.net/Community/Technical-Blogs/John-West-Sitecore-Blog/Posts/2010/11/How-to-Apply-Data-Sources-to-Sitecore-ASPNET-Presentation-Components.aspx

나는 도우미와를 제공 SublayoutParameterHelper 소스 공유 라이브러리를 사용하는 것이 좋습니다 DataSource에 설정된 ID로 표현 된 Item에 액세스하기 위해 하위 레이아웃과 함께 사용할 기본 클래스. John은 또한이 블로그를 자신의 블로그 게시물에 인용했습니다.

관련 문제