从Sitecore 6.5中的自定义字段获取当前项目

从Sitecore 6.5中的自定义字段获取当前项目,sitecore,custom-fields,Sitecore,Custom Fields,我正在sitecore 6.5中构建一个自定义字段。此字段将根据字段所在的项目生成新项目(它使用项目的名称生成文件夹),我需要引用使用此字段的项目。我怎样才能访问这个 我的自定义字段继承自sitecore.Shell.Applications.ContentEditor.File类(如果有帮助的话) 我的问题与这里的问题类似: 然而,问题在于sitecore的早期版本,解决方案似乎不再有效(ItemID不在viewstate中,也不由管道填充) 谢谢大家! 如果我没有弄错的话,Sitecore.

我正在sitecore 6.5中构建一个自定义字段。此字段将根据字段所在的项目生成新项目(它使用项目的名称生成文件夹),我需要引用使用此字段的项目。我怎样才能访问这个

我的自定义字段继承自sitecore.Shell.Applications.ContentEditor.File类(如果有帮助的话)

我的问题与这里的问题类似:

然而,问题在于sitecore的早期版本,解决方案似乎不再有效(ItemID不在viewstate中,也不由管道填充)


谢谢大家!

如果我没有弄错的话,
Sitecore.Data.Fields.FileField
是Sitecore API中字段数据的表示形式。例如,您可以使用它来检索
mediateItem
Src
,方法是按如下方式转换项目字段:

var fieldSrc = ((FileField)Sitecore.Context.Item.Fields["My File Field"]).Src;

我不认为它打算用作Sitecore客户端中的自定义字段。尝试从
Sitecore.Shell.Applications.ContentEditor.File
继承,或者干脆升级
Sitecore.Web.UI.HtmlControls.Control
。只要定义了
公共字符串ItemID{get;set;}
属性,Sitecore就应该用当前的项ID填充它。

为了解决同样的问题,我花了几个小时,最后反编译了EditorFormatter,发现这个类有一个名为SetProperties的方法

通过反射(!?)此方法检查字段编辑器是否具有属性“ItemID”、“ItemVersion”、“ItemLanguage”。。。。叹息


好的,通过添加公共属性'ItemID',我们可以编辑该项目

对不起,我需要更新我的问题,我是从Sitecore.Shell.Applications.ContentEditor.File继承的-它的继承链中没有公共字符串ItemID,我可以使用ILSpy了解到。从基本Sitecore.Web.UI.HtmlControls.Control继承,并从那里构建我需要的所有函数似乎都可以工作。谢谢