我正在使用特定模板在内容编辑器上创建新功能。我试图创建类似于General Links' "插入链接"和"媒体链接",但显示的树只包含具有特定模板的项目。
为了更清楚,我将展示一个样本树。
这是普通的TreeviewEx将在对话框中显示的方式,但我希望它只显示具有特定模板的项目。有没有办法做到这一点?或者可能是使用组合框的替代方法?
我使用的XML控件就是这样的
<Scrollbox Width="100%" Height="100%" Background="white" Border="none" Padding="0">
<TreeviewEx ID="InternalLinkTreeview" DataContext="InternalLinkDataContext" Root="true" />
</Scrollbox>
答案 0 :(得分:1)
如果您使用的是TreelistEx
字段类型(假设您的意思是此而不是TreeviewEx,因为它不是有效的默认Sitecore字段),那么您可以在Source
的{{1}}中使用增强的参数化数据源语法模板中的字段用于设置应显示哪些模板以及哪些模板应该是可选择的。
您希望使用DataSource
参数设置根项目路径,然后使用IncludeTemplatesForDisplay / ExcludeItemsForDisplay
的组合仅显示特定模板的某些项目,IncludeTemplatesForSelection
仅允许选择TreelistEx
字段中的特定项目模板。例如:
Datasource=/sitecore/content/TUSM/home/&IncludeTemplatesForDisplay=Landing1,Landing2,Landing3&IncludeTemplatesForSelection=Offices
如果您需要将范围限制为单个网站(例如query:./ancestor-or-self::*[@@templatename='Site']/Home
),您可能希望将其与Xpath查询相结合,但还有其他方法可以实现类似。根据您是否需要选择多个项目,您可能希望考虑Droptree
选择单个项目。或者你可能希望只使用带有模板限制的相关xpath查询,如果你想在本地&#34;范围选择(而不是允许从/sitecore/content
中选择)
您可以在this blog post和this previous answer中阅读更多内容。