在模板构建器中查询sitecore“source”字段的表示法
我试图使用查询表示法(或xpath – 无论哪个工作)设置模板的源字段,但它们似乎都没有工作。
我的内容树是一个多站点内容树:
France --Page 1 ----Page1A -------Page1AA --Page 2 --Page 3 --METADATA ----Regions US --Page 1 ----Page1A -------Page1AA --Page 2 --Page 3 --METADATA ----Regions
每个站点都有自己的METADATA文件夹,我希望它能够在每个主要国家/地区节点中添加页面时,我希望这些值能够反映该站点的METADATA中的任何内容。 我现在有两个不同的领域 – 一个droplink和一个treelistex字段。 所以我想我可以只获取国家站点的父项,并获取元数据文件夹。 当我在这两个字段中放入以下查询时,我得到不同的结果:
query:./ancestor::*[@@templatename='CountryHome']/METADATA/Regions/*
- 对于droplink字段,我只获得第一个Region(一个项目)
- 对于treelistex字段,我获取整个内容树
然后我尝试稍微修改查询并取出“查询”符号
./ancestor::*[@@templatename='CountryHome']/METADATA/Regions/*
如果我转到开发人员中心/ xpath构建器,并将上下文节点设置为主国家/地区网站下面的任何项目,它将返回我正确的内容,但是当我将其放入源代码中时,我将获得整个内容树案件。
救命!
你在这里有什么应该使用Droplink字段。 也许你指的是Droptree?
query:./ancestor::*[@@templatename='CountryHome']/METADATA/Regions/*
至于TreelistEx,我不认为默认的Treelist字段支持Sitecore查询。 但是, 本文介绍如何创建支持它的自定义TreeList。
支持Sitecore查询的字段
您可以在哪里使用语法query:
或fast:
对于FastQuery):
- Droplist
- 分组下载列表
- DropLink
- 分组Droplink
- 清单
- 多重表
- Droptree
支持参数化数据源的字段
您可以在参数化数据源查询中使用增强语法的位置:
- Droptree†
- 树形列表
- TreelistEx
† Droptree仅支持Datasource
和DatabaseName
参数。
增强的查询字符串语法包括以下参数:
- 数据源
- 数据库名称
- 将allowMultipleSelection
- IncludeItemsForDisplay
- ExcludeItemsForDisplay
- IncludeTemplatesForSelection
- ExcludeTemplatesForSelection
- IncludeTemplatesForDisplay
- ExcludeTemplatesForDisplay
这些使用如下: Datasource=/sitecore/content/home/Products/&IncludeTemplatesForDisplay=Product Category&ExcludeTemplatesForSelection=Product Description&IncludeTemplatesForSelection=Product Category
Mark Ursino在这里有关于如何使用这种语法的精彩post。
- 下拉列表不与sqldatareader绑定
- 如何使用C#确定虚拟目录或网站的ASP.NET版本?
- 更新记录Linq-to-SQL
- WebApi – 反序列化和序列化备用属性名称
- asp.net使用URL路由时用户控件的多个Page_Load事件
- Response.Redirect()重定向到子文件夹中的页面
- 我可以使用reflection来查找ASP.NET中的bin / 文件夹而不是asp临时文件夹
- 如何解决错误:该类型似乎没有实现microsoft.practices.servicelocation.iservicelocator?
- 在身份validation过程中,ApplicationSignInManager类为null