Asp.net 如何使每个多列表项在Sitecore中可编辑

Asp.net 如何使每个多列表项在Sitecore中可编辑,asp.net,sitecore,sitecore8,Asp.net,Sitecore,Sitecore8,MultiListField中的某些项目必须以html格式显示,但分为两列,如下所示: 项目1项目2 项目3项目4 虽然这些项目是按需要呈现的,但我不知道如何使它们可编辑 在sc:EditFrame中封装菜单部分,只允许添加/删除/排序项目,而不允许编辑每个项目 有什么想法,怎么做吗?我会回到您的中继器解决方案,尝试使用嵌套中继器 首先,将数据源放入项目列表列表中(例如,可以使用集合集合)。在您的情况下,每个内部列表将有2个项目(用于2列) 将此数据源绑定到可以生成的外部中继器对于它可以找到的每

MultiListField
中的某些项目必须以html格式显示,但分为两列,如下所示:

项目1项目2
项目3项目4

虽然这些项目是按需要呈现的,但我不知道如何使它们可编辑

sc:EditFrame
中封装
菜单部分
,只允许添加/删除/排序项目,而不允许编辑每个项目


有什么想法,怎么做吗?

我会回到您的中继器解决方案,尝试使用嵌套中继器

首先,将数据源放入项目列表列表中(例如,可以使用集合集合)。在您的情况下,每个内部列表将有2个项目(用于2列)

将此数据源绑定到可以生成
的外部中继器对于它可以找到的每个条目(列表)。在这个转发器中创建另一个内部转发器,并将条目(内部列表-在您的例子中是2个项目的集合)绑定到它。您的内部中继器可以生成
元素并使用sc:control


这将使它们可编辑,但仍需要editframe来添加/删除/排序…

使用FieldRenderer渲染字段:

sb.Append(FieldRenderer.Render(item1, "Name");

当在页面/体验编辑器中时,这将使项目成为可编辑的

为什么不在一个
中只包含一行
col-xs-6
?这是一个直截了当的中继器,这些项目只需以内联方式呈现,然后根据需要自动开始一个新行。虽然这将非常有效,但您应该乐于将UserControl转换为WebControl。将html创建为字符串并在usercontrols中输出并不是一个很好的实践……完全同意,但问题是如何使字段可编辑。没错——只是让人们编写体面代码的一个小小尝试;)
StringBuilder sb = new StringBuilder();
sb.Append("<div class=\"clearfix\">");
.
.
..
menu-section.innerHtml = sb.ToString();
sb.Append(FieldRenderer.Render(item1, "Name");