Sitecore 8:通过默认呈现自动填充占位符

Sitecore 8:通过默认呈现自动填充占位符,sitecore,rendering,sitecore8,contentplaceholder,experience-editor,Sitecore,Rendering,Sitecore8,Contentplaceholder,Experience Editor,我在玩动态占位符时,被一个预填充的概念打动了。有没有一种方法可以为我的占位符选择一个默认的呈现方式,从而避免体验编辑器中的“选择呈现”对话框 场景:我有一个名为“PageHead”的渲染,它有三个渲染。其中一个是占位符“PageStraterph”,它当前允许两种渲染:一种是“PageStrater”,另一种是“PageStraterWithimage”。我希望占位符“PageStraterph”始终将渲染选择为“PageStrater”,从而避免出现“选择渲染”对话框 我做了一些家庭作业,想知

我在玩动态占位符时,被一个预填充的概念打动了。有没有一种方法可以为我的占位符选择一个默认的呈现方式,从而避免体验编辑器中的“选择呈现”对话框

场景:我有一个名为“PageHead”的渲染,它有三个渲染。其中一个是占位符“PageStraterph”,它当前允许两种渲染:一种是“PageStrater”,另一种是“PageStraterWithimage”。我希望占位符“PageStraterph”始终将渲染选择为“PageStrater”,从而避免出现“选择渲染”对话框

我做了一些家庭作业,想知道这是否与标准值相关(我们可以在模板级别使用它;但不确定渲染),而且我还听说了命令模板概念(不深入)


感谢您的所有帮助。

您可以在模板的标准值上指定渲染,然后每个新项目都将有您的页面摘要渲染

如果您想自动化此过程,请查看
管道,我们将通过扩展此管道来注入公共渲染

已更新

我发现了一些代码示例和博客文章,它们应该可以帮助您找到正确的方向来处理布局细节

public void addSublayoutItem(string itemId,string sublayoutId)
{
使用(新Sitecore.SecurityModel.SecurityDisabler())
{
if(Sitecore.Data.ID.IsID(itemId)和&Sitecore.Data.ID.IsID(sublayoutId))
{
//获取主数据库并获取要在其上添加子布局的项
Database masterDatabase=Database.GetDatabase(“master”);
Item=masterDatabase.GetItem(Sitecore.Data.ID.Parse(itemId));
//或者,您也可以根据需要从上下文数据库中获取Sitecore项
//Item Item=Sitecore.Context.Database.GetItem(Sitecore.Data.ID.Parse(itemId));
如果(项!=null)
{
//获取布局定义和设备定义
LayoutField LayoutField=新的LayoutField(item.Fields[Sitecore.fieldId.LayoutField]);
LayoutDefinition LayoutDefinition=LayoutDefinition.Parse(layoutField.Value);
DeviceDefinition DeviceDefinition=layoutDefinition.GetDevice(Sitecore.Context.Device.ID.ToString());
//创建渲染定义并添加子布局或渲染的引用
RenderingDefinition RenderingDefinition=新的RenderingDefinition();
renderingDefinition.ItemID=子布局ID;
//设置显示渲染的占位符
renderingDefinition.Placeholder=“content”;
//设置子布局的数据源(如果有)
renderingDefinition.Datasource=“{24240FF2-B4AA-4EB2-B0A4-63E027934C38}”;
//还可以使用Sitecore路径设置子布局的数据源
//renderingDefinition.Datasource=“/sitecore/content/Home/Books”;
//将RenderingReference添加到DeviceDefinition
deviceDefinition.AddRendering(渲染定义);
//保存布局更改
item.Editing.BeginEdit();
layoutField.Value=layoutDefinition.ToXml();
item.Editing.EndEdit();
}
}
}
}
从这里取-


还有一些关于这个主题的博客

我只有一个PageStraterph占位符和一个pagehead子布局。不知道如何实现你所说的?