Sitecore设置组件数

时间:2015-05-20 15:03:37

标签: sitecore sitecore7

是否可以在占位符中设置组件数?

我们可以在占位符中添加尽可能多的组件,即使已经添加了组件,也可以在灰色框中使用“添加到此处”。

我想说的是

  

在名为'bodyArea'的plcaceholder中,您只能在'bodyArea'占位符中设置一个组件,并且不会另外添加任何其他组件。

反正怎么办?

2 个答案:

答案 0 :(得分:1)

可能有很多方法,但这是我以前用过的。

// Check the number of renderings in placeholder
public static bool numberOfRenderings(string placeholderName)
{
    bool rendering = true;
    var renderingReferences = Sitecore.Context.Item.Visualization.GetRenderings(Sitecore.Context.Device, true);
    int renderingsInPlaceholder = renderingReferences.Where(r => r.Placeholder.EndsWith('/' + placeholderName, StringComparison.OrdinalIgnoreCase)).Count();

    if (renderingsInPlaceholder > 1)
    {
        return rendering = false;
    }
    return rendering;
}

在View.cshtml中

if (@yourObject.numberOfRenderings("your-placeholder-key")) {
    @Html.Sitecore().Placeholder("your-placeholder-key")
}
else 
{
    @Html.Raw("<div>Only one rendering item is available in this placeholder.</div>")
}

答案 1 :(得分:0)