在templateItem中,我有一个字段的以下信息。
Name : Product type
field type : 'Droplink'
DataSource : DataSource=/sitecore/content/Enumerations/Products/Product type/
当内容编辑器根据上述模板创建项目时,对于字段' Product type
'在下拉菜单中,他会看到../Product type
下的项目。我的问题是,在下拉列表中显示的项目如何显示其他字段而不是项目名称
答案 0 :(得分:5)
此功能不是开箱即用的,虽然DropLink字段的代码看起来像有代码可以执行此操作(请查看GetItemHeader()
中的Sitecore.Shell.Applications.ContentEditor.LookupEx
方法),我不知道如何通过内容编辑器使用参数...
创建自定义字段以实现此目的很简单:
using Sitecore;
using Sitecore.Data.Items;
using Sitecore.Shell.Applications.ContentEditor;
namespace MyProject.Custom.Fields
{
public class CustomDropLink : LookupEx
{
protected override string GetItemHeader(Item item)
{
if (string.IsNullOrEmpty(this.FieldName))
this.FieldName = StringUtil.ExtractParameter("FieldName", this.Source).Trim();
return base.GetItemHeader(item);
}
}
}
然后在core
下的/sitecore/system/Field types/
数据库中注册您的自定义类。您可以通过复制/sitecore/system/Field types/Link Types/Droplink
并设置以下值来执行此操作:
Assembly: MyProject.Custom
Class: MyProject.Custom.Fields.CustomDropLink
Control: <set this to empty>
然后,当您使用此字段时,请设置字段的来源,如下所示:
Datasource=/sitecore/content/path/to/items&FieldName=Title