访问给定Kentico TreeNode

时间:2015-10-19 10:14:33

标签: kentico

我问了这个问题over on the Kentico devnet,但还没有明确答案。

我对Kentico 8.2的实现有一个特殊的要求,在代码中,给定一个特定的TreeNode,我想首先找到所使用的模板上的所有区域,然后为每个区域获取详细信息这些区域中使用的所有Web部件和小部件

在我的情况下,我不需要担心模板继承。我的所有页面都没有实现模板继承。

我发现this post on the old Kentico forums建议我可以使用PageInfoProvider获取相关PageInfo的{​​{1}}对象,然后使用其TreeNode属性获得我需要的东西。

但是,我没有看到PageTemplateInfo的{​​{1}}属性。有PageTemplateInfoCMS.DocumentEngine.PageInfo。我想也许DesignPageTemplateInfo可能就是那个,它确实包含了UsedPageTemplateInfo集合中的正确区域。但我没有看到我期望在区域'UsedPageTemplateInfo集合中的Web部件(实际上是小部件)。

我想我要问的是,如何使用API​​从WebPartZones作为结构化对象访问WebParts列的内容?我已经意识到我可以通过调用DocumentWebParts上的dbo.CMS_Document来访问我需要的信息,但这是非结构化的XML。我假设API中的某个地方我可以将这些信息作为结构化对象。

有谁知道我如何获取我需要的细节?感谢。

P.S。我的模板使用ASPX +门户模型。

1 个答案:

答案 0 :(得分:1)

正如我在DevNet的第二个回答中所提到的,你不能专门使用cms_document表,因为webparts在模板中运行而不是在特定页面上运行。另一方面,即使页面具有与另一页面相同的模板,窗口小部件也是每页特定的。拿一个我提供的look at the example on the DevNet,它可以帮到你找到你想要的东西。