Sitefinity从代码中获取当前的dynamiccontent项

时间:2014-09-03 13:38:55

标签: api content-type sitefinity

我目前正在使用Sitefinity CMS编写网站。有人可以解释如何从page_load上的服务器端代码获取当前动态内容项吗?

我编写了一个用户控件来显示自定义的滑动图像库。我的动态模块中有多种内容类型。用户控件将作为母版页模板的一部分而不是每个页面。在每个页面加载时,我想获取与页面关联的当前dynamiccontent项,并检查它是否具有名称为' Gallery'的属性。如果是这样,我会提取图像并通过用户控件渲染它们。

谢谢,

布赖恩。

1 个答案:

答案 0 :(得分: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;
   }
}