在Sitecore TreeviewEx上设置特定项目

时间:2018-02-08 08:53:01

标签: xml dialog sitecore sitecore8 sitecore-mvc

我正在使用特定模板在内容编辑器上创建新功能。我试图创建类似于General Links' "插入链接"和"媒体链接",但显示的树只包含具有特定模板的项目。

为了更清楚,我将展示一个样本树。

enter image description here

这是普通的TreeviewEx将在对话框中显示的方式,但我希望它只显示具有特定模板的项目。有没有办法做到这一点?或者可能是使用组合框的替代方法?

我使用的XML控件就是这样的

<Scrollbox Width="100%" Height="100%" Background="white" Border="none" Padding="0">
  <TreeviewEx ID="InternalLinkTreeview" DataContext="InternalLinkDataContext" Root="true" />
</Scrollbox>

1 个答案:

答案 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 postthis previous answer中阅读更多内容。