如何使每个多列表项在 Sitecore 中可编辑
How to make each Multilist Item editable in Sitecore
MultiListField
中的一些项目必须显示在 html 中,但在 2 列中,如:
Item1 Item2
Item3 Item4
<div id="menu-section" runat="server">
<div class="clearfix">
<div class="col-xs-6">
<p>Item1 Name</p>
</div>
<div class="col-xs-6">
<p>Item2 Name</p>
</div>
</div>
<div class="clearfix">
<div class="col-xs-6">
<p>Item3 Name</p>
</div>
<div class="col-xs-6">
<p>Item4 Name</p>
</div>
</div>
</div>
内容作者应该能够从体验编辑器中编辑每个项目。
如果它是单列,我将使用 asp:Repeater
和 sc:
控件来完成此操作。
所以,相反,我用字符串构建了 html 并在页面上呈现。
C#
StringBuilder sb = new StringBuilder();
sb.Append("<div class=\"clearfix\">");
.
.
..
menu-section.innerHtml = sb.ToString();
尽管项目已根据需要呈现,但我不知道如何使它们可编辑。
将 menu-section
包裹在 sc:EditFrame
中将只允许 add/remove/sorting 个项目,但不允许编辑每个项目。
任何想法,如何做到这一点?
我会回到你的中继器解决方案,并尝试使用嵌套中继器。
首先,将您的数据源放入项目列表列表中(例如,您可以使用集合的集合)。在您的情况下,每个内部列表将有 2 个项目(2 列)。
将此数据源绑定到您的外部转发器,它可以为它可以找到的每个条目(列表)生成 <div class="clearfix">.. </div>
。在这个中继器中创建另一个内部中继器并将条目(内部列表 - 在您的情况下是 2 个项目的集合)绑定到它。您的内部转发器可以生成 <div class="col-xs-6">
元素并使用 sc: control.
这将使它们可编辑,但您仍然需要编辑框 add/remove/sort...
使用 FieldRenderer 渲染字段:
sb.Append(FieldRenderer.Render(item1, "Name");
在 Page/Experience 编辑器上时,这会将项目呈现为可编辑。
MultiListField
中的一些项目必须显示在 html 中,但在 2 列中,如:
Item1 Item2
Item3 Item4
<div id="menu-section" runat="server">
<div class="clearfix">
<div class="col-xs-6">
<p>Item1 Name</p>
</div>
<div class="col-xs-6">
<p>Item2 Name</p>
</div>
</div>
<div class="clearfix">
<div class="col-xs-6">
<p>Item3 Name</p>
</div>
<div class="col-xs-6">
<p>Item4 Name</p>
</div>
</div>
</div>
内容作者应该能够从体验编辑器中编辑每个项目。
如果它是单列,我将使用 asp:Repeater
和 sc:
控件来完成此操作。
所以,相反,我用字符串构建了 html 并在页面上呈现。
C#
StringBuilder sb = new StringBuilder();
sb.Append("<div class=\"clearfix\">");
.
.
..
menu-section.innerHtml = sb.ToString();
尽管项目已根据需要呈现,但我不知道如何使它们可编辑。
将 menu-section
包裹在 sc:EditFrame
中将只允许 add/remove/sorting 个项目,但不允许编辑每个项目。
任何想法,如何做到这一点?
我会回到你的中继器解决方案,并尝试使用嵌套中继器。
首先,将您的数据源放入项目列表列表中(例如,您可以使用集合的集合)。在您的情况下,每个内部列表将有 2 个项目(2 列)。
将此数据源绑定到您的外部转发器,它可以为它可以找到的每个条目(列表)生成 <div class="clearfix">.. </div>
。在这个中继器中创建另一个内部中继器并将条目(内部列表 - 在您的情况下是 2 个项目的集合)绑定到它。您的内部转发器可以生成 <div class="col-xs-6">
元素并使用 sc: control.
这将使它们可编辑,但您仍然需要编辑框 add/remove/sort...
使用 FieldRenderer 渲染字段:
sb.Append(FieldRenderer.Render(item1, "Name");
在 Page/Experience 编辑器上时,这会将项目呈现为可编辑。