Sitecore:有效的方式来显示项目的名称,这是保存在类型链接类型字段:Droptree
本文关键字:类型 存在 保存 字段 Droptree 链接 方式 有效 显示 项目 Sitecore | 更新日期: 2023-09-27 18:14:17
假设Sitecore Item item
有一个类型为Link Types:Droptree
的字段Created by
我想打印保存在Created by
字段中的项目名称。下面的<sc:Text Field="Created by" runat="server"/>
行将打印ItemId。显示该项目的名称的有效方法是什么?
我知道我可以从数据库中获取项目,然后将其名称打印为:
<asp:Label runat="server" ID="lblItemName"></asp:Label>
在后台代码: if (!Page.IsPostBack)
{
Item currentItem = Sitecore.Context.Item;
Item relatedItem = Sitecore.Context.Database.GetItem(currentItem["Created by"]);
lblItemName.Text = relatedItem.Name;
}
您需要将Item值传递给<sc:Text/>
标签,否则它将使用上下文项。
<sc:Text Field="Created by" Item="<%# RelatedItem %>" runat="server"/>
在代码中设置RelatedItem
的值,并在Page_Load()
方法的末尾调用DataBind();
我不认为这是可能呈现一个项目的名称与<sc:Text />
,因为它是一个字段渲染器。
所以你必须像你做的那样做:
var currentItem = Sitecore.Context.Item;
// Alternative way to get the linked item
var createdByField = (ReferenceField) currentItem.Fields["Created by"];
var createdByItem = createdByField.TargetItem;
var createdByItemName = createdByItem.Name;
lblItemName.Text = createdByItemName;
如果您想从链接项(createdByItem
)中呈现字段,而不是当前上下文项,您可以这样做:
<sc:Text runat="server" Field="Headline" ID="scRelatedItem" />
将Item属性设置为想要从标题字段中读取的项,后面的代码:
scRelatedItem.Item = createdByItem;
这样做还可以使编辑器通过页面编辑器(在Sitecore 8中称为体验编辑器)编辑字段。