【问题标题】:Sitecore get items under current itemSitecore 获取当前项目下的项目
【发布时间】:2018-06-15 20:08:04
【问题描述】:

我想在站点核心模板字段(多列表)中使用一个查询,该字段将使用仅存在于当前项目下的特定模板 ID 的项目填充列表。这可能吗?

【问题讨论】:

    标签: templates sitecore


    【解决方案1】:

    您可以使用以下查询获取项目的所有子项:

    query:./*[@@templateid='{SOME TEMPLATE ID}']
    

    或所有后代

    query:.//*[@@templateid='{SOME TEMPLATE ID}']
    

    【讨论】:

    • 谢谢马雷克。不幸的是,这对我不起作用。这是我在内容编辑器模板字段中使用的查询: query:./*[@@templateid='{C3E067D2-8E15-4294-934B-B53B537894F6}'] 左半部分显示的唯一可供选择的项目是 sitecore诸如站点核心根目录、各种系统文件夹、布局文件夹等项目。
    • 看来我说得太早了。原来我使用的语法并不完全可靠。列表中只有部分项目可用。我有一个带有搜索框的多列表和列表显示的 4 个项目中的 1 个。其他具有相同模板 ID 的不显示。
    【解决方案2】:

    这是我发现的适合我的解决方案: TemplateFilter={C3E067D2-8E15-4294-934B-B53B537894F6}&StartSearchLocation=query:./* 。基本相同,只是语法不同。再次感谢马雷克

    【讨论】:

    • 我认为这个答案几乎是正确的。 StartSearchLocation 应始终指向单个项目。试试TemplateFilter={C3E067D2-8E15-4294-934B-B53B537894F6}&StartSearchLocation=query:.。如果这不起作用,请检查日志中是否有任何内容。当 Multilist 字段出现任何问题时,Sitecore 会添加相当不错的消息
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多