如何使用C#将项目添加到TreelistEx?

时间:2016-03-08 15:56:38

标签: c# sitecore glass-mapper

我似乎无法找到任何关于此的文档。我有一个项目,其中包含TreelistEx字段:

enter image description here

我想以编程方式在此字段中添加新项目,最好使用glass mapper,但如果需要必须使用vanilla sitecore。

任何人都可以帮助我吗?我该怎么做?

你不得不原谅缺乏细节,我找不到一件事能指引我朝这个方向发展。

2 个答案:

答案 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我没有屏住呼吸)有更好的方法来实现这个目标......