具有多个源的Sitecore删除列表

时间:2014-03-24 19:23:10

标签: c# asp.net .net content-management-system sitecore

我有一个具有DropList字段的数据模板。我希望数据源来自两个Sitecore文件夹项。

有没有为droplist定义多个来源?

2 个答案:

答案 0 :(得分:0)

不在标准下拉列表字段中,但根据从来源字段中获取2个参数的Droplist创建自定义网站核心字段应该不会太难。

这是创建自定义控件的好资源:http://sitecorejunkie.com/2012/12/28/have-a-field-day-with-custom-sitecore-fields/

droplist控件使用Sitecore.Shell.Applications.ContentEditor.ValueLookupEx进行控制。因此,您可以创建一个继承自该控件的新控件,并覆盖 GetItems()方法以从源中读取项目

目前的情况如下:

protected override Item[] GetItems(Item current)
{
  Assert.ArgumentNotNull((object) current, "current");
  using (new LanguageSwitcher(this.ItemLanguage))
    return LookupSources.GetItems(current, this.Source);
}

所以你可以让源有2个guid / path分开一个管道(|)

protected virtual Item[] GetItems(Item current)
{
  Assert.ArgumentNotNull((object) current, "current");
  using (new LanguageSwitcher(this.ItemLanguage))
  {
    var sourceList = this.Source.Split('|');
    var items = LookupSources.GetItems(current, source[0]).ToList();
    items.AddRange(LookupSources.GetItems(current, source[1]));
    return items.ToArray();
  }
}
  • 免责声明 - 此代码未经测试,但应指向正确的方向。

答案 1 :(得分:0)

为什么不尝试使用Sitecore Query来设置位置,并为两个文件夹分别用AND?