2014-09-03 1 views
0

현재 Sitefinity CMS를 사용하여 사이트를 작성하고 있습니다. 누군가가 page_load의 서버 측 코드에서 현재 동적 컨텐츠 항목을 가져 오는 방법을 설명 할 수 있습니까?코드에서 현재 동적 컨텐츠 가져 오기

슬라이딩 이미지의 사용자 지정 갤러리를 표시하기 위해 사용자 정의 컨트롤을 작성했습니다. 동적 모듈에는 여러 콘텐츠 유형이 있습니다. 사용자 정의 컨트롤은 모든 페이지가 아닌 마스터 페이지 템플릿의 일부로 사용됩니다. 각 페이지로드시 해당 페이지와 연관된 현재 동적 컨텐츠 항목을 가져와 'Gallery'라는 이름의 속성이 있는지 여부를 확인하고 싶습니다. 그렇다면 나는 이미지를 추출하여 사용자 정의 컨트롤을 통해 렌더링합니다.

감사합니다.

브라이언.

답변

0

귀하의 이미지가 관련 콘텐츠라고 가정합니다. 그러면 게시 된 모든 유형의 콘텐츠 항목이 가져옵니다.

var dynamicModuleManager = DynamicModuleManager.GetManager(); 
var moduleType = TypeResolutionService.ResolveType("Telerik.Sitefinity.DynamicTypes.Model.YOURTYPEHERE"); 

var dcItems = dynamicModuleManager.GetDataItems(moduleType) 
      .Where(l => l.Status == ContentLifecycleStatus.Master); 

foreach (var dcItem in dcItems) 
{ 
    //pass the dynamic content item to a model constructor or populate here, then 
    // get your image this way: 

    var image = dcItem.GetRelatedItems<Image>("Images").SingleOrDefault(); 
    if (image != null) 
    { 
     ImageUrl = image.MediaUrl; 
    } 
}