如何设置一个多参考字段值编程,如果我有项目/ IDS的收藏?
例如,建立以下原始值 “{GUID1} | {GUID2} | {} GUID3 ......”
在我的特定情况下,我需要进口项目的树,并在一个层面上父母用孩子作为存储库,它也有一个多参考列表基于一些标准的孩子的一个子集。 我想建立基于排序或筛选灵活的列表,然后设置家长的值未做具体代码列表类型 - 父字段可以是任何名单。
议事规则“其中[为奇数]排序依据孩子desc”的建立为每个父母设为场“奇”,例如自定义列表
- Parent1 - > Parent1 [ “奇”] = 5
- Parent2 - > Parent2 [ “奇”] = 3,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();
据扎卡里提供的食谱链接,这似乎是访问这样一个领域的正确方法:
Sitecore.Data.Fields.MultilistField multiselectField = item.Fields["multiselect"]
该列表由返回的单个成员Sitecore.Data.Fields.MultilistField.GetItems()
方法是从来没有空。 如果用户已经而不更新到该项目的引用删除的项目时, GetItems()
方法排除了从它的结果项。 [...]您可以将项目添加到使用支持的字段类型Sitecore.Data.Fields.MulitlistField.Add()
方法,并删除使用的项目Sitecore.Data.Fields.MulitlistField.Remove()
方法。