我有一些问题,我将三个块添加到内容区域,如果用户添加了第四个块,那么我需要为第四个块创建一个新行,因为每行最多只能包含三个块。 .
问题是,据我所知,我无法遍历我的 contentarea 中的项目,因为它们不是正确的块类型(contentArea.Items 是 IList 类型),即使我会迭代,也不会删除 on-页面编辑,因为 html 并没有真正指定在哪里呈现我的属性?..
有任何想法吗?
我有一些问题,我将三个块添加到内容区域,如果用户添加了第四个块,那么我需要为第四个块创建一个新行,因为每行最多只能包含三个块。 .
问题是,据我所知,我无法遍历我的 contentarea 中的项目,因为它们不是正确的块类型(contentArea.Items 是 IList 类型),即使我会迭代,也不会删除 on-页面编辑,因为 html 并没有真正指定在哪里呈现我的属性?..
有任何想法吗?
听起来您正试图在Alloy Mvc 示例ContentAreaRowBalancer
示例中重现该类的功能:
著名的Joel Abrahamsson有几篇关于 Alloy Mvc 示例的博客文章,这是一个很好的起点:http ://world.episerver.com/Articles/Items/ASPNET-MVC-Templates-for-EPiServer-7-CMS/
本质上,他们采用的策略是使用 (Bootstrap)[ http://getbootstrap.com/] CSS 将块重新排列成行,而不是试图通过控制 Html 的呈现方式来引入额外的块。从上面的示例图像中,它将呈现为:
<div class="row">
<div class="jumbotron"> <!-- 12 units wide -->
...
</div>
</div>
<div class="row">
<div class="4"> <!-- 4 units wide -->
Alloy Plan Block
</div>
<div class="4">
Alloy Track Block
</div>
<div class="4">
Alloy Meet Block
<div>
</div>
如果您要添加另一个块,则渲染算法会将其添加到新行:
<div class="row">
<div class="12"> <!-- 12 units wide if 1 block, will be changed to 6 if another block is added -->
New Block
</div>
</div>