2016-06-29 7 views
1

In einem TemplateItem habe ich folgende Informationen für ein Feld.Sitecore, wie das Feld des Elements in einer Datenquelle anstelle des Elementnamens angezeigt wird

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

Wenn der Content-Editor ein Element erstellt basierend auf dem obigen Vorlage für das Feld ‚Product type‘ in der Dropdown-Liste wird er die Elemente unter ../Product type sehen. Meine Frage ist für die Artikel, die in Dropdown angezeigt werden, wie ein anderes Feld anstelle des Elementnamens angezeigt wird

+0

Nicht aus dem Kasten heraus, Sie muss ein benutzerdefiniertes Feld erstellen. – jammykam

+0

Ja das Feld 'Titel' habe ich schon. Aber ich weiß nicht wie ich darauf zugreifen kann. – Kamran

+1

Nein, ich meine, Sie müssen ein benutzerdefiniertes Feld erstellen: http://www.sitecore.net/learn/blogs/best-practice-blogs/martin-knudsen/posts/2012/09/creating-a-custom- sitecore-field.aspx – jammykam

Antwort

5

Diese Funktionalität existiert nicht out of the box, obwohl der Code für das DropLink-Feld aussieht wie Code darin hat dazu in der Lage, dies zu tun (werfen Sie einen Blick auf die GetItemHeader() Methode in Sitecore.Shell.Applications.ContentEditor.LookupEx), ich weiß nicht, wie man den Parameter über den Content-Editor obwohl ...

Es ist einfach genug, ein benutzerdefiniertes Feld zu schaffen, um dies zu erreichen, obwohl:

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

Dann registrieren Sie Ihre benutzerdefinierte Klasse in der core Datenbank unter /sitecore/system/Field types/. Sie können dies tun, indem /sitecore/system/Field types/Link Types/Droplink Duplizieren und Einstellung folgender Werte:

Assembly: MyProject.Custom 
Class: MyProject.Custom.Fields.CustomDropLink 
Control: <set this to empty> 

Dann, wenn Sie nutzen dieses Feld die Quelle des Feldes gesetzt wie so:

Datasource=/sitecore/content/path/to/items&FieldName=Title

Verwandte Themen