我正在为 SDL Tridion 2011 SP1 中 Dreamweaver TBB 中的组件启用 SiteEdit 2009。
内容 XML:
<Content>
<AAA>
<BBB>
<CCC>Title 1</CCC>
<DDD>Name 1</DDD>
</BBB>
<BBB>
<CCC>Title 2</CCC>
<DDD>Name 2</DDD>
</BBB>
</AAA>
<AAA>
<BBB>
<CCC>Title 1</CCC>
<DDD>Name 1</DDD>
</BBB>
<BBB>
<CCC>Title 2</CCC>
<DDD>Name 2</DDD>
</BBB>
</AAA>
</Content>
字段说明如下:
- AAA - 可重复的嵌入式架构
- BBB - AAA 中的可重复嵌入模式
Dreamweaver TBB 是:
<!-- TemplateBeginRepeat name="AAA" -->
<!-- TemplateBeginRepeat name="Field.BBB" -->
<div>@@RenderComponentField(FieldPath+".CCC", 0)@@ </div>
<div>@@RenderComponentField(FieldPath+".DDD", 0)@@ </div>
<!-- TemplateEndRepeat -->
<!-- TemplateEndRepeat -->
我在组件模板中添加了这个 TBB 并预览了组件。它显示了没有错误的确切预览。
我的组件模板的高级源代码如下所示:
<TemplateInvocation>Dreamweaver TBB</TemplateInvocation>
<TemplateInvocation>Enable Inline Editing</TemplateInvocation>
当我将 SiteEdit 2009 的“启用内联编辑”添加到组件模板时,它显示此错误:
Debugging was started in process 'TcmTemplateDebugHost' with id 9244
Object reference not set to an instance of an object.
at Tridion.ContentManager.Templating.Templates.EnableInlineEditing.FindItemFieldXPath(String[] parts, Int32 currentIndex, ItemFields fields, Boolean& isMultiValue)
at Tridion.ContentManager.Templating.Templates.EnableInlineEditing.FindItemFieldXPath(String[] parts, Int32 currentIndex, ItemFields fields, Boolean& isMultiValue)
at Tridion.ContentManager.Templating.Templates.EnableInlineEditing.FindItemFieldXPath(String[] parts, Int32 currentIndex, ItemFields fields, Boolean& isMultiValue)
at Tridion.ContentManager.Templating.Templates.EnableInlineEditing.DetermineXPathForField(TcmUri componentUri, String fieldName, Boolean& isMultiValue)
at Tridion.ContentManager.Templating.Templates.EnableInlineEditing.ProcessComponentFieldTag(ITcdlTag tag)
at Tridion.ContentManager.Templating.TcdlParser.ProcessText(String text, TagHandler tagHandler, Boolean& wasModified)
at Tridion.ContentManager.Templating.TcdlParser.ProcessText(String text, TagHandler tagHandler)
at Tridion.ContentManager.Templating.TcdlParser.Process(Item item, TagHandler tagHandler)
at Tridion.ContentManager.Templating.Assembly.AssemblyMediator.Transform(Engine engine, Template template, Package package)
at Tridion.ContentManager.Templating.Assembly.CSharpSourceCodeMediator.RunTemplate(Engine engine, Package package, String templateUri, String className)
at Tridion.Templating.CSharpTemplate.CSharpSourceTemplate.Transform(Engine __engine, Package __package)
at Tridion.ContentManager.Templating.Assembly.CSharpSourceCodeMediator.Transform(Engine engine, Template template, Package package)
at Tridion.ContentManager.Templating.Engine.ExecuteTemplate(Template template, Package package)
at Tridion.ContentManager.Templating.Engine.InvokeTemplate(Package package, TemplateInvocation templateInvocation, Template template)
at Tridion.ContentManager.Templating.Compound.CompoundTemplateMediator.Transform(Engine engine, Template templateToTransform, Package package)
at Tridion.ContentManager.Templating.Engine.ExecuteTemplate(Template template, Package package)
at Tridion.ContentManager.Templating.Engine.InvokeTemplate(Package package, TemplateInvocation templateInvocation, Template template)
at Tridion.ContentManager.Templating.Engine.TransformPackage(Template template, Package package)
at Tridion.ContentManager.Templating.Debugging.DebuggingEngine.Run()
at Tridion.ContentManager.Templating.Debugging.DebugSession.Run()
任何人都可以分享他们对此的看法吗?
它是 SiteEdit 2009 的限制吗?