c# - 模板生成器中 sitecore 'source' 字段的查询符号

标签 c# asp.net content-management-system sitecore sitecore6

我正在尝试使用查询符号(或 xpath - 无论哪个有效)设置模板的源字段,但它们似乎都不起作用。

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

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

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

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

 query:./ancestor::*[@@templatename='CountryHome']/METADATA/Regions/*
  • 对于 droplink 字段,我只得到第一个区域(一个项目)
  • 对于 treelistex 字段,我得到了整个内容树

然后我尝试稍微修改查询并去掉“查询”符号

 ./ancestor::*[@@templatename='CountryHome']/METADATA/Regions/*

如果我转到开发人员中心/xpath 构建器,并将上下文节点设置为主要国家/地区站点下的任何项目,它会返回我所需要的内容,但是当我将其放入源代码时,我会得到全部内容在这两种情况下都是树。

帮助!

最佳答案

支持Sitecore查询的字段

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

  • 下拉列表
  • 分组下拉列表
  • 链接
  • 分组链接
  • list
  • 多元论者

支持参数化数据源的字段

您可以在哪里使用参数化数据源的增强语法 查询:

  • 树状树 †
  • 树 list
  • TreelistEx

Droptree 仅支持 DatasourceDatabaseName 参数。

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

  • 数据源
  • 数据库名
  • 允许多选
  • IncludeItemsForDisplay
  • ExcludeItemsForDisplay
  • IncludeTemplatesForSelection
  • ExcludeTemplatesForSelection
  • IncludeTemplatesForDisplay
  • ExcludeTemplatesForDisplay

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

Mark Ursino 有一篇关于如何使用这种语法的好文章 here .

关于c# - 模板生成器中 sitecore 'source' 字段的查询符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12611258/

相关文章:

c# - 在 SQL Server 中生成看似随机的唯一数字 ID

c# - Skype API 的实现

c# - 无法在 Visual Studio 2017 中复制文件 .exe

javascript - 如何将 css 类名称添加到 Squarespace 中的文本 block ?

php - 具有复杂用户管理的社交网络 CMS

c# - 编写具有远程 shell 功能的程序,如 netcat

C# 2 维 byte[][] 到 JSON.NET 到 C# byte[][] 或 Javascript 等效项失败

c# - 在 WCF 中创建有状态的客户端-服务器体系结构

php - 允许定义可编辑区域的开源 CMS

c# - 基于多级角色授权的数据库设计