是否可以在内容项上获取__Rendering控件的模板字段值? 特别是,我想在页面项目的控件中定义“数据源”字段值,如下面的屏幕截图所示。
如屏幕截图所示,我在页面项目中有一些控件,我想获得控件的“数据源”字段值。
我使用了这段代码,我可以列出在页面项上使用的所有控件。但是,我不知道如何在页面上获取控件的浏览数据源信息。
public RenderingReference[] GetListOfSublayouts(string itemId, Item targetItem)
{
RenderingReference[] renderings = null;
if (Sitecore.Data.ID.IsID(itemId))
{
renderings = targetItem.Visualization.GetRenderings(Sitecore.Context.Device, true);
}
return renderings;
}
public List<RenderingItem> GetListOfDataSource(RenderingReference[] renderings)
{
List<RenderingItem> ListOfDataSource = new List<RenderingItem>();
foreach (RenderingReference rendering in renderings)
{
if (!String.IsNullOrEmpty(rendering.Settings.DataSource))
{
ListOfDataSource.Add(rendering.RenderingItem);
}
}
return ListOfDataSource;
}
RenderingReference[] renderings = GetListOfSublayouts(targetItem.ID.ToString(), targetItem);
List<RenderingItem> ListOfDataSource = GetListOfDataSource(renderings);
答案 0 :(得分:3)
这正是我想要的。
完美的工作!!!!!!
AutoForm.hooks({
add: {
onSuccess: function(doc) {
Router.go('page', ???);
}
}
});
答案 1 :(得分:2)
以下是一篇可以提供帮助的博文:Using the Data Source Field with Sitecore Sublayouts
以下是您可以在单个控件中调用的相关代码:
private Item _dataSource = null;
public Item DataSource
{
get
{
if (_dataSource == null)
if(Parent is Sublayout)
_dataSource = Sitecore.Context.Database.GetItem(((Sublayout)Parent).DataSource);
return _dataSource;
}
}
访问上面定义的DataSource
属性将为您提供从CMS分配为数据源的项目。