【问题标题】:Get Collection of items by pipe separated GUIDs in sitecore在 sitecore 中通过管道分隔的 GUID 获取项目集合
【发布时间】:2015-02-18 21:28:02
【问题描述】:

基本上,我在渲染参数中使用了多列表来进行类别选择。所以我得到了选定项目的管道分隔 GUID 并且需要获取项目集合,是否有 Sitecore api 支持的任何方法而不是循环迭代。与任何内置的 Sitecore 方法相比,这在效率方面可能会很昂贵。

【问题讨论】:

    标签: c# sitecore sitecore7.2


    【解决方案1】:

    Sitecore.Data.Fields中有一个MultilistField类,使用如下

    var mlf = new MultilistField(item.Fields["field name"]).
    mlf.GetItems();
    

    我不认为它比你已经在做的更有效率。事实上,它在内部可能也是如此。

    【讨论】:

      【解决方案2】:

      另一种避免潜在 ArgumentNullException(在 item.Fields["field name"] 为 null 的情况下)的方法是将 Sitecore.Data.ID.ParseArray 与 linq 语句结合使用以获取项目列表,如下所示:

      var items = ID.ParseArray(item["field name"])
                     .Select(id => item.Database.GetItem(id)).ToList();
      

      【讨论】:

      • 好点。其实这是我比较喜欢的方式,很少用MultilistField。我只是给出官方答案:)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-11
      • 1970-01-01
      • 2017-05-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多