Inheritance 如何在自定义字段类型中获取当前字段名

Inheritance 如何在自定义字段类型中获取当前字段名,inheritance,sitecore,sitecore6,Inheritance,Sitecore,Sitecore6,我正在尝试检索正在生成的自定义Sitecore字段上的当前字段名。换句话说,如果我的自定义字段类型应用于名为“Meta title”的字段,我需要能够检索该名称 这意味着您所要做的就是创建一个名为FieldName的公共自动属性,剩下的就是历史。。。遗憾的是,它似乎不起作用(FieldName始终为null或空) 有什么想法吗?我尝试从Sitecore.Web.UI.HtmlControls.Control和Sitecore.Shell.Applications.ContentEditor.Te

我正在尝试检索正在生成的自定义Sitecore字段上的当前字段名。换句话说,如果我的自定义字段类型应用于名为“Meta title”的字段,我需要能够检索该名称

这意味着您所要做的就是创建一个名为FieldName的公共自动属性,剩下的就是历史。。。遗憾的是,它似乎不起作用(FieldName始终为null或空)


有什么想法吗?我尝试从
Sitecore.Web.UI.HtmlControls.Control
Sitecore.Shell.Applications.ContentEditor.Text
继承,但运气不佳。

您应该可以通过创建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);

您试图对需要知道字段名的自定义字段执行什么操作?我的字段通过在Sitecore系统索引中搜索类似名称的项目来检查可能重复的项目标题。为了构建Lucene查询,我需要知道字段名。当控件中有jquery操作(在我的例子中是隐藏和取消隐藏)并且一个项中有多个字段时,这也很有用-当您不考虑名称时,隐藏和取消隐藏会影响所有字段。谢谢,但它似乎是指Web控件的ID(例如:FIELD23212622),不是模板字段项的ID。嗯…很抱歉,找到了解决方案并修复了我的答案。谢谢,我会尝试一下。我才意识到你是谁!哈哈。昨天在页面编辑器上的演示很好!