【问题标题】:Sitecore: How to access same field name in different sectionsSitecore:如何在不同部分访问相同的字段名称
【发布时间】:2009-04-24 10:09:07
【问题描述】:

我在 sitecore 中有数据模板 dt1,该模板在“数据”部分具有“标题”字段。 我还有数据模板 dt2,它在“门户”部分具有“标题”字段 最后,我有数据模板 dt3,它使用 dt1 和 dt2 作为基本模板。

如何在 xslt 中找到门户/标题的内容?

在我的代码中,当我编写 时,我得到了 data/header 的内容(因为这个节点首先出现)。 我知道如何在 .net 中执行此操作,但我需要使用 xslt。

/callprat

【问题讨论】:

  • 当询问如何编写特定的 XPath 表达式以选择 XML 文档中的特定节点时,必须提供 XML 文档本身。请务必提供您要从中选择节点的 XML 文档。另外,请准确描述您需要选择哪些节点。
  • 谢谢,但这是问题之一,我不知道 xml 是什么样的。我注意到我的问题的代码部分没有显示,我已经编辑了它,你现在可以看到我正在使用 sitecore 自己的 xslt 版本。如果有人知道查看 sitecore-xml 的方法,这可能也会有所帮助。

标签: sitecore


【解决方案1】:

我在 .Net 中的一个项目中找到了解决此问题的方法。客户设置的模板之一有“桶”,它有不同的字段部分,但桶中的字段是相同的。我使用 LINQ 按 Section 名称对字段进行分组,然后处理每个字段分组。

var sections = currentItem.Fields.GroupBy(field => field.Section);
foreach (var section in sections)
{
    if (section.Key.StartsWith("Bucket"))
    {
        buckets.Add(new Bucket(section)); //I made a bucket item, 
                                          //and passed each IGrouping<Field> to it
    }
}

【讨论】:

    【解决方案2】:
    item.Fields.Where(field => field.Section.ToUpper() == "META DATA" && 
                               field.DisplayName.ToUpper() == "TITLE").First().Value;
    

    【讨论】:

      【解决方案3】:

      你不能。

      坦率地说,我也不知道有任何支持的方式从 .NET 中实现。

      这个,直接来自Data Definition Reference,第 2.1.1 节

      2.1.1 数据模板字段

      数据模板字段定义用户 界面控件等属性 影响场的行为 在内容编辑器和页面编辑器中。 有关字段的更多信息,请参阅 第 4 章,模板字段。

      注意在定义字段名称时,确保 他们是独一无二的,即使在 字段部分。 XSLT 和 .NET 代码单独使用字段名,没有 参考部分,提取 来自字段的内容。

      【讨论】:

      • 您可以使用 API 来完成。您只需在“部分信息”下查找字段 ID。然后,您可以使用它来获取字段值。
      【解决方案4】:

      您可以通过 ID 引用字段:

      C#:

      string value = item["{00000000-0000-0000-000000000000}"]

      Field field = item.Fields["{00000000-0000-0000-000000000000}"]

      我还没有尝试过,但我认为它也可以在 XSLT 中工作:

      &lt;sc:text field="{00000000-0000-0000-000000000000}" /&gt;

      【讨论】:

        猜你喜欢
        • 2014-06-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-02-15
        • 1970-01-01
        相关资源
        最近更新 更多