在模板构建器中查询sitecore"source"字段的表示法

M.R*_*.R. 14 c# asp.net sitecore content-management-system sitecore6

我试图使用查询表示法(或xpath - 无论哪个工作)设置模板的源字段,但它们似乎都没有工作.

我的内容树是多站点内容树:

France
--Page 1
----Page1A
-------Page1AA
--Page 2
--Page 3
--METADATA
----Regions

US
--Page 1
----Page1A
-------Page1AA
--Page 2
--Page 3
--METADATA
----Regions
Run Code Online (Sandbox Code Playgroud)

每个站点都有自己的METADATA文件夹,我想要它,以便在每个主要国家/地区节点中添加页面时,我希望值反映该站点的METADATA中的任何内容.我现在有两个不同的领域 - 一个droplink和一个treelistex字段.所以我想我可以只获取国家站点的父项,并获取元数据文件夹.当我在两个字段中放入以下查询时,我得到不同的结果:

 query:./ancestor::*[@@templatename='CountryHome']/METADATA/Regions/*
Run Code Online (Sandbox Code Playgroud)
  • 对于droplink字段,我只获得第一个Region(一个项目)
  • 对于treelistex字段,我获取整个内容树

然后我尝试稍微修改查询并取出"查询"符号

 ./ancestor::*[@@templatename='CountryHome']/METADATA/Regions/*
Run Code Online (Sandbox Code Playgroud)

如果我转到开发人员中心/ xpath构建器,并将上下文节点设置为主国家/地区站点下面的任何项目,它将返回我正确的内容,但是当我将其放入源代码中时,我将获得整个内容树案件.

救命!

Ste*_*ope 43

支持Sitecore查询的字段

您可以在哪里使用语法query:fast:(对于FastQuery):

  • Droplist
  • 分组下载列表
  • DropLink
  • 分组Droplink
  • 清单
  • 多重表
  • Droptree

支持参数化数据源的字段

您可以在参数化数据源查询中使用增强语法的位置:

  • Droptree†
  • 树形列表
  • TreelistEx

Droptree仅支持DatasourceDatabaseName参数.

增强的查询字符串语法包括以下参数:

  • 数据源
  • 数据库名称
  • 将allowMultipleSelection
  • IncludeItemsForDisplay
  • ExcludeItemsForDisplay
  • IncludeTemplatesForSelection
  • ExcludeTemplatesForSelection
  • IncludeTemplatesForDisplay
  • ExcludeTemplatesForDisplay

这些使用如下: Datasource=/sitecore/content/home/Products/&IncludeTemplatesForDisplay=Product Category&ExcludeTemplatesForSelection=Product Description&IncludeTemplatesForSelection=Product Category

马克乌尔西诺对如何使用这种语法的一个伟大的职位在这里.

  • SDN表示只有`TreeList`和`TreeListEx`支持参数化数据源.使"Droptree"正式完全没用. (7认同)
  • 排除参数似乎不适用于`Droptree`,但它们在`Treelist`中有效.啊! (4认同)
  • 从SC 6.6开始,Droptree接受带有查询的SC查询:format.刚刚在我正在研究的项目中得到确认. (3认同)

Der*_*ker 14

你在这里有什么应该使用Droplink字段.也许你指的是Droptree?

query:./ancestor::*[@@templatename='CountryHome']/METADATA/Regions/*
Run Code Online (Sandbox Code Playgroud)

至于TreelistEx,我不认为默认的Treelist字段支持Sitecore查询.但是,本文介绍如何创建支持它的自定义TreeList.

  • 我发现不同的字段支持查询语法的不同变体.它们似乎是完全独立开发的.最好的方法是使用sitecore提交一张票. (2认同)