我有一个问题,我有三个块添加到contentarea,如果用户添加第四个块,那么我需要为第四个块创建一个新行,因为每行只能包含一个最大值三个街区..
问题在于,据我所知,我无法通过我的内容区域中的项目进行迭代,因为它们不是正确的块类型(contentArea.Items属于IList类型),即使我愿意,也不会删除页面编辑,因为HTML没有真正指定在哪里呈现我的属性?..
有什么想法吗?
答案 0 :(得分:0)
听起来您正试图在 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>