Tridion 将“启用内联编辑”添加到组件模板后预览组件时出错

Tridion 将“启用内联编辑”添加到组件模板后预览组件时出错,tridion,Tridion,我正在SDL Tridion 2011 SP1中为Dreamweaver TBB中的组件启用SiteEdit 2009 内容XML: <Content> <AAA> <BBB> <CCC>Title 1</CCC> <DDD>Name 1</DDD> </BBB> <BBB>

我正在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>
有谁能分享他们的观点吗


这是SiteEdit 2009的一个限制吗?

看起来您已经阅读了此答案并尝试应用它:

在这种情况下,您是否也遵循了该答案中的调试提示?如果是这样,您看到的输出是什么

许多人在编写这样的结构时都有问题。我也不例外,我刚刚发现,如果知道关键变量是:Field、FieldPath和TemplateRepeatIndex,我就可以让大多数案例正常工作。如果有疑问,只需将此片段嵌入到每个TemplateBeginRepeat中的DWT中即可

(FieldPath=@@FieldPath@,TemplateRepeatIndex=@@TemplateRepeatIndex@)

我猜这些行可能有问题:

@@RenderComponentField(FieldPath+“.CCC”,0)@ 我试着写出FieldPath+“.CCC”连接,看看你能得到那个值。我当时的印象是,通过连接两个字符串不可能获得字段值,而且只能在
@@string\u field\u name${templateRepeatIndex}@
(一个与重复索引连接的字段值)上获得,但我已经尝试了一段时间了,因此,请真正了解是否可以首先获得输出值

如果您仍然无法解决此问题,是否可以提供实际的组件XML和实际的DWT代码?根据提供的示例代码提供解决方案并不容易


谢谢

解决方案完全取决于您遇到的错误。不幸的是,您实际上没有显示全部错误,因此无法说出可能出现的错误。很可能是缺少或不正确的参数造成的问题。有关详细信息,请查看登录模板生成器或事件日志。抱歉。我错过了。现在我已经用模板生成器的日志更新了这个问题。您是否在运行此代码的服务器上安装了SiteEdit 2009?在这种情况下,这将是您使用模板生成器连接到的服务器。@Quirijn:由于他的模板正在运行,看起来至少已经安装了这些模板。据我所知,这是您在发布过程中唯一需要安装的部分。只有通过SiteEdit代理访问已发布的页面,才能调用SiteEdit的其余部分。@Peter Kjaer。我已经更新了我的问题。谢谢你的回答。我发现我的TBB工作得很好,没有在组件模板中启用内联编辑。但当包含它时,它会抛出错误。“对象引用未设置为对象的实例。”是主要错误。这与我在应用XSLT TBB时也面临的错误相同。我上面链接的答案给出了非常清楚的调试说明:包括(FieldPath=@@FieldPath@,TemplateRepeatIndex=@@TemplateRepeatIndex@)在DWT中的每个循环中,使用生成的输出更新您的问题。非常感谢。当我试着调试TBB时,我发现了确切的错误。
<!-- TemplateBeginRepeat name="AAA" -->

    <!-- TemplateBeginRepeat name="Field.BBB" -->
        <div>@@RenderComponentField(FieldPath+".CCC", 0)@@ </div>
        <div>@@RenderComponentField(FieldPath+".DDD", 0)@@ </div>
    <!-- TemplateEndRepeat -->

<!-- TemplateEndRepeat -->
<TemplateInvocation>Dreamweaver TBB</TemplateInvocation>
<TemplateInvocation>Enable Inline Editing</TemplateInvocation>
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()