我似乎无法找到任何关于此的文档。我有一个项目,其中包含TreelistEx
字段:
我想以编程方式在此字段中添加新项目,最好使用glass mapper,但如果需要必须使用vanilla sitecore。
任何人都可以帮助我吗?我该怎么做?
你不得不原谅缺乏细节,我找不到一件事能指引我朝这个方向发展。
答案 0 :(得分:1)
TreeList和TreeListEx的工作方式与多列表相同。
using (new Sitecore.SecurityModel.SecurityDisabler())
{
Item newItem = Sitecore.Context.Item;
newItem.Editing.BeginEdit();
MultilistField mlf = newItem.Fields["FieldName"];
// adding an item
mlf.Add(ItemToAdd.ID.ToString());
// removing an item
mlf.Remove(ItemToRemove.ID.ToString());
newItem.Editing.EndEdit();
}
答案 1 :(得分:0)
似乎sitecore将这些字段存储为管道分隔列表。因此,您可以将值编辑为字符串(这非常stringly typed)。所以可以将值作为一个字符串来操纵(上帝这很糟糕)。因此,要将项目添加到ID为treelistEx
的{{1}}中,您可以:
{652FD742-AAE3-468D-81BE-7EF18E06B796}
将字符串拆分为数组,操作并将其转换回字符串非常简单。
TBH此代码非常糟糕。我想(知道sitecore我没有屏住呼吸)有更好的方法来实现这个目标......