在我们的Sitecore应用程序中,我们有一个名为newsarticleslide的模板,该模板在旋转木马幻灯片上呈现新闻文章。该模板具有一个名为"新闻文章"的字段,其中包含正在渲染的新闻文章的ID。到目前为止,此字段的类型已经下降链接,非常适合从树中选择单个项目,并指定该树的根部是什么。
现在,我们决定将所有新闻文章包含在一个名为" News"的水桶中。问题在于,我们现在不能使用DropLink从存储桶中选择一个项目,也不能使用" droglink with Search"字段类型。
QueryBuilder似乎是最适合的,因为它使我们能够从存储桶中选择一个项目。但是,当我们最初进行搜索时,返回了Sitecore中的所有内容,然后我们必须通过模板过滤才能查看新闻文章。
我们要做的是通过指定搜索的起点来预处搜索,并将搜索限制为仅返回特定模板的项目。我们假设我们可以使用模板字段源中的参数来做到这一点,但是这样做没有成功。
有人知道我们如何做到这一点吗?QueryBuilder是正确的方法吗?
您可以通过将Droplink
字段更改为Multilist with Search
字段来实现这一目标。这是一篇博客文章,向您展示了从您的存储桶中限制列表中值的选项。
现在,这里的一个关键是该字段类型是一个多选字段,但是您可能只想使用它来选择单个新闻文章。您可以使用正则迫使一个选择:
- 在树上找到表示字段的项目(模板项目下方的字段部分下方)
- 打开标准字段在>视图上 ribbon
- 在
Validation
字段中输入此正则:^({[^}]+}|?){0,1}$
- 在
Validation Text
字段中输入消息,例如" 您只能选择最多1个项目。"
这将允许您使用带有搜索字段的多列表来在存储桶中选择一个项目。