参数模板中的 Sitecore 调用清单数据

Sitecore Call Check-List Data in Parameter Template

我分配了一个子布局 "Parameter Template"。在参数模板中,有一些字段,例如单文本、富文本和清单类型。我在code-behind中调用单字段和富文本字段都没有问题。但是,我不知道如何调用清单字段中的列表。

我想在添加子布局时仅获取所选项目的信息。

我相信Checklist字段类型只会存储所选项目的信息。

您可以将该字段转换为 MultilistField,然后对其调用 GetItems()。那应该会返回所选项目的列表。

首先阅读参数模板

https://www.sitecore.net/learn/blogs/technical-blogs/martina-welander-sitecore-blog/posts/2013/07/improving-the-page-editor-experience-part-1-uses-for-parameters.aspx

然后设置一个基础 class 来处理数据源和参数模板是很有用的。你可以根据这个写你自己的基础class:

https://marketplace.sitecore.net/en/Modules/Sub_Layout_Parameter_Helper.aspx

当您从子布局访问参数值时,它们将是原始值,在您的情况下是管道分隔的 guid。

这是获取参数值的方法:

 var sublayout = this.Parent as Sublayout;

 var parameters = sublayout.Parameters;

 var collection = WebUtil.ParseUrlParameters(parameters);

 string images = collection["Images"];

变量图像将包含 guid - 您必须在这些图像上使用 Getitem() 来检索通过像这样拆分字符串而选择的实际项目:

var selectedItems = images.split('|');
List<Item> result = new List<Item>();

foreach (var itemId in selectedItems)
{
  Guid id = Guid.Empty;
  if (Guid.TryParse(itemId, out id))
  {
    var found = db.GetItem(new ID(id));
    if (found != null)
    {
      result.Add(found);
    }
  }
}

上面的列表现在将在子布局上指定选定的项目