Treelist的多个数据源

时间:2012-01-27 15:48:59

标签: sitecore

快速提问...我有一个treelist,我希望查询从我的内容树的多个文件夹中提取。如何从多个数据源中设置选择?我对此没有太多了解,我想知道它是否与更改我正在使用的查询类型有关。现在,我在模板中为此特定项目的treelist提供了此查询:

DataSource=/Sitecore/Content/Home/Home Root/Industries/&IncludeTemplatesForDisplay=Industry Item,Additional Resources Grouping,Additional Resources Item&IncludeTemplatesForSelection=Industry Item,Additional Resources Grouping,Additional Resources Item

我基本上想要复制上面的查询,还要从/ Sitecore / Content / Home / Home Root / Products

中提取

有关如何完成此任务的任何建议?

2 个答案:

答案 0 :(得分:4)

我认为这不支持多个datasource路径,但作为this SDN forum thread suggests(来自John West),您可以使用getLookupSourceItems管道。

您还可以创建一个自定义Treelist,扩展内置的Treelist并在新的Treelist上展示此功能。您可以使用ILSpy对当前版本进行反编译。

答案 1 :(得分:4)

这显然是超级晚了,但我希望将来参考。我自己也有一个类似的问题并找到了这个并找到了我认为的解决方案(至少在Sitecore 6.4中)。

你可以选择'ExcludeItemsForDisplay'来获取ID的列表。如果你回溯到一个级别

“DataSource = / Sitecore / Content / Home / Home Root”

并添加“ExcludeItemsForDisplay = {要忽略的文件夹的ID}},{显示在”快速信息“顶部的长ID},{etc}”,您应该能够排除任何不想出现的文件夹并且只保留你想要的。

IncludeItemsForDisplay有点过于严格(有点我的意思)要使用,除非你只有少数想要的东西可供使用。

所以希望这有助于解决任何未来的问题。 (或者如果你以前在黑客攻击它也会出现同样的问题)

您的新来源当然不包括实际ID:

DataSource=/Sitecore/Content/Home/Home Root&IncludeTemplatesForDisplay=Industry Item,Additional Resources Grouping,Additional Resources Item&IncludeTemplatesForSelection=Industry Item,Additional Resources Grouping,Additional Resources Item&ExcludeItemsForDisplay={12345678-1234-1234-123456789}, {#####-####-####}, {### etc}

我希望这会有所帮助(至少是下一个可能遇到同一问题的人)。

另外,作为旁注,手动更改排除声音可能会改变的系统令人沮丧,您的文件夹也有可以包含在IncludeTemplates中的模板。因此,如果您为您的行业和产品提供特殊的文件夹模板,那么也可以将这些模板添加到IncludeTemplatesForDisplay字符串中。实现同样更可维护的效果。我没有测试过这个。