1

我有一些问题,我将三个块添加到内容区域,如果用户添加了第四个块,那么我需要为第四个块创建一个新行,因为每行最多只能包含三个块。 .

问题是,据我所知,我无法遍历我的 contentarea 中的项目,因为它们不是正确的块类型(contentArea.Items 是 IList 类型),即使我会迭代,也不会删除 on-页面编辑,因为 html 并没有真正指定在哪里呈现我的属性?..

有任何想法吗?

4

1 回答 1

0

听起来您正试图在Alloy Mvc 示例ContentAreaRowBalancer示例中重现该类的功能:

将块分成行的屏幕截图。

著名的Joel Abrahamsson有几篇关于 Alloy Mvc 示例的博客文章,这是一个很好的起点:http ://world.episerver.com/Articles/Items/ASPNET-MVC-Templates-for-EPiServer-7-CMS/

  • BalancedContentAreaRenderer类负责内容区域的实际呈现。然而,为了弄清楚如何将一个区域中的内容划分为行,它使用了一个实例......</li>
  • ContentAreaRowBalancer类是内容区域应如何划分为行以及每个内容应有多宽的实际逻辑所在的位置。

本质上,他们采用的策略是使用 (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>
于 2014-09-18T09:12:24.087 回答