1

構築中のカスタム Sitecore フィールドで現在のフィールド名を取得しようとしています。つまり、カスタム フィールド タイプが「メタ タイトル」という名前のフィールドに適用される場合、その名前を取得できる必要があります。

このチュートリアルは、FieldName というパブリック自動プロパティを作成するだけでよいことを暗示しています。残りは履歴です...残念ながら、機能していないようです (FieldName は常に null または空です)。

何か案は?私は運が悪いから継承しようSitecore.Web.UI.HtmlControls.Controlとしました。Sitecore.Shell.Applications.ContentEditor.Text

4

1 に答える 1

3

FieldID プロパティを作成して、コントロールのフィールド ID にアクセスできる必要があります。これは、フィールドを定義するテンプレート フィールド アイテムの ID と同じである必要があります。したがって、次の方法でフィールドの名前を取得できます

var fieldItem = Sitecore.Context.ContentDatabase.GetItem(this.FieldID);
var fieldName = fieldItem.Name;

Sitecore がコントロールに設定できるプロパティの完全なリストは、Sitecore.Shell.Applications.ContentEditor.EditorFormatter.SetProperties.

ReflectionUtil.SetProperty(editor, "ID", field.ControlID);
ReflectionUtil.SetProperty(editor, "ItemID", field.ItemField.Item.ID.ToString());
ReflectionUtil.SetProperty(editor, "ItemVersion", field.ItemField.Item.Version.ToString());
ReflectionUtil.SetProperty(editor, "ItemLanguage", field.ItemField.Item.Language.ToString());
ReflectionUtil.SetProperty(editor, "FieldID", field.ItemField.ID.ToString());
ReflectionUtil.SetProperty(editor, "Source", field.ItemField.Source);
ReflectionUtil.SetProperty(editor, "ReadOnly", readOnly);
ReflectionUtil.SetProperty(editor, "Disabled", readOnly);
于 2012-05-16T17:50:05.647 に答える