2

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

我的自定义字段继承自 sitecore Sitecore.Shell.Applications.ContentEditor.File 类,如果这有帮助的话。

我的问题类似于位于此处的问题:如何在 Sitecore 的自定义字段中获取对当前编辑项目的引用

但是,以前版本的 sitecore 存在问题,并且解决方案似乎不再起作用(ItemID 不在视图状态中,也没有被管道填充)。

谢谢!

4

2 回答 2

2

为同一个问题苦苦挣扎了几个小时,我最终反编译了EditorFormatter,发现这个类有一个名为SetProperties的方法。

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

好的,所以通过添加一个公共属性“ItemID”我们有正在编辑的项目

于 2013-03-19T15:37:42.953 回答
0

如果我没记错的话,Sitecore.Data.Fields.FileField是 Sitecore API 中字段数据的表示。例如,您可以使用它来检索MediaItemSrc通过强制转换项目的字段,如下所示:

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

我不认为它打算用作 Sitecore 客户端中的自定义字段。尝试继承Sitecore.Shell.Applications.ContentEditor.File或只是海峡Sitecore.Web.UI.HtmlControls.Control。只要您public string ItemID { get; set; }定义了一个属性,Sitecore 就应该使用当前项目 ID 填充它。

于 2012-09-07T21:57:45.720 回答