Sitecore的设定的多参考字段值编程(Sitecore set multi reference

2019-10-21 04:53发布

如何设置一个多参考字段值编程,如果我有项目/ IDS的收藏?

例如,建立以下原始值 “{GUID1} | {GUID2} | {} GUID3 ......”


在我的特定情况下,我需要进口项目的树,并在一个层面上父母用孩子作为存储库,它也有一个多参考列表基于一些标准的孩子的一个子集。 我想建立基于排序或筛选灵活的列表,然后设置家长的值未做具体代码列表类型 - 父字段可以是任何名单。

议事规则“其中[为奇数]排序依据孩子desc”的建立为每个父母设为场“奇”,例如自定义列表

  • Parent1 - > Parent1 [ “奇”] = 5
    • 2
  • Parent2 - > Parent2 [ “奇”] = 3,1
    • 1
    • 2
    • 3

Answer 1:

使用类Sitecore.Text.ListString打造的价值

例:

// Incomplete code snippet assumes variable Item item with list field "References" 
// and IEnumerable<ID> references

Sitecore.Text.ListString referencesValue = new Sitecore.Text.ListString();

foreach(ID id in references)
{
   string idString = id.ToString();
   if (!referencesValue.Contains(idString))
   {
       referencesValue.Add(idString);
   }
}    

item.Editing.BeginEdit();
item["References"] = referencesValue.ToString();
item.Editing.EndEdit();


Answer 2:

据扎卡里提供的食谱链接,这似乎是访问这样一个领域的正确方法:

    Sitecore.Data.Fields.MultilistField multiselectField = item.Fields["multiselect"]

该列表由返回的单个成员Sitecore.Data.Fields.MultilistField.GetItems()方法是从来没有空。 如果用户已经而不更新到该项目的引用删除的项目时, GetItems()方法排除了从它的结果项。 [...]您可以将项目添加到使用支持的字段类型Sitecore.Data.Fields.MulitlistField.Add()方法,并删除使用的项目Sitecore.Data.Fields.MulitlistField.Remove()方法。



文章来源: Sitecore set multi reference field value programatically
标签: sitecore