Sitecore Droptree不会排除项目

Sitecore Droptree不会排除项目,sitecore,sitecore8.1,Sitecore,Sitecore8.1,我正在进行Sitecore 8.1安装。我正在尝试使用droptree字段来允许内容编辑器从项目树中选择一个项目数据模板。每个有效选择的项都保证有一个或多个不同数据模板数据模板B的子项。根据文档,这应该很容易做到:只需将源设置为参数化数据源: Datasource=/sitecore/Media Library/Images/Folder&IncludeTemplatesForDisplay=Data Template A 或查询: query:/sitecore/Media Libr

我正在进行Sitecore 8.1安装。我正在尝试使用droptree字段来允许内容编辑器从项目树中选择一个项目数据模板。每个有效选择的项都保证有一个或多个不同数据模板数据模板B的子项。根据文档,这应该很容易做到:只需将源设置为参数化数据源:

Datasource=/sitecore/Media Library/Images/Folder&IncludeTemplatesForDisplay=Data Template A
或查询:

query:/sitecore/Media Library/Images/Folder/*[@@templatename='Data Template A']
然而,出于某种原因,该字段似乎忽略了路径以外的任何内容。它将显示树的正确部分,但显示所有项目,包括数据模板B的项目,并允许选择这些项目。我已经尝试了各种[Exclude | Include]模板的[Selection | Display]排列,但没有一种被证明是有效的。我还尝试使用[@@templatename!='Data Template B']或使用templateid的两种方法从查询中排除B

除了偶尔模糊地提到droptree不遵守排除条款之外,我还没有找到很多关于这方面的信息。常见的解决方案似乎是使用带有正则表达式验证的树列表将其限制为一个选择。这种方法已经足够了,但并不是我想要的:TreeList UI对于单个选择来说有点奇怪,我更希望用户根本不允许选择多个项目,而不是在选择时抛出验证错误

我还可以使用一些其他字段来表示排除情况,但不显示树状视图:同样,可以使用,但不是想法,因为这里可能有很多项,树状视图为用户提供了一些有用的上下文

我可能会写一个新的字段类型,模仿Droptree,但实际上尊重排除,我很固执,这可能是我采取的路线,但我想先检查一下,以确保我没有遗漏什么。这就是问题所在:在我开始编写自己的Droptree之前,有人知道如何让Droptree尊重ExcludeTemplatesForSelection/Display或filtering by query吗?

Sitecore Droptree字段不支持IncludeTemplatesForSelection或IncludeTemplatesForDisplay参数

它们仅适用于树列表、树列表和多列表字段

您可以使用由Richard Cabral创建的FilteredTree字段类型


您可以在git中找到它:。

正在努力实现这一点,但下面是对以下人员的几点提示:1。这也要求:2。我将using TreeNode=Sitecore.Web.UI.HtmlControls.TreeNode添加到using语句中。现在可以确认这是否有效。唯一的小问题是,你不能通过Sitecore Rocks访问树状视图,但这对我来说只是个麻烦,对内容编辑器来说不是。