Sitecore 如何在数据源中显示项目的字段而不是项目名称

Sitecore how to show item's field in a datasource instead of item name

在 templateItem 中,我有一个字段的以下信息。

Name : Product type
field type : 'Droplink' 
DataSource : DataSource=/sitecore/content/Enumerations/Products/Product type/

当内容编辑器基于上述模板创建项目时,对于下拉列表中的字段“Product type”,他将看到 ../Product type 下的项目。我的问题是关于下拉列表中显示的项目如何显示其他字段而不是项目名称

虽然 DropLink 字段的代码看起来有能够执行此操作的代码(请查看 [=13 中的 GetItemHeader() 方法,但此功能并非开箱即用=]), 我不知道如何通过内容编辑器使用参数...

虽然创建自定义字段来实现此目的非常简单:

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);
        }
    }
}

然后在 /sitecore/system/Field types/ 下的 core 数据库中注册您的自定义 class。您可以通过复制 /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