我有一个具有DropList字段的数据模板。我希望数据源来自两个Sitecore文件夹项。
有没有为droplist定义多个来源?
答案 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?