参数模板中的 Sitecore 调用清单数据
Sitecore Call Check-List Data in Parameter Template
我分配了一个子布局 "Parameter Template"。在参数模板中,有一些字段,例如单文本、富文本和清单类型。我在code-behind中调用单字段和富文本字段都没有问题。但是,我不知道如何调用清单字段中的列表。
我想在添加子布局时仅获取所选项目的信息。
我相信Checklist字段类型只会存储所选项目的信息。
您可以将该字段转换为 MultilistField,然后对其调用 GetItems()。那应该会返回所选项目的列表。
首先阅读参数模板
然后设置一个基础 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);
}
}
}
上面的列表现在将在子布局上指定选定的项目
我分配了一个子布局 "Parameter Template"。在参数模板中,有一些字段,例如单文本、富文本和清单类型。我在code-behind中调用单字段和富文本字段都没有问题。但是,我不知道如何调用清单字段中的列表。
我想在添加子布局时仅获取所选项目的信息。
我相信Checklist字段类型只会存储所选项目的信息。
您可以将该字段转换为 MultilistField,然后对其调用 GetItems()。那应该会返回所选项目的列表。
首先阅读参数模板
然后设置一个基础 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);
}
}
}
上面的列表现在将在子布局上指定选定的项目