Sitecore:显示保存在类型为 Link Types:Droptree 的字段中的项目名称的有效方法
Sitecore: Efficient way to display the name of Item which is saved in field with type Link Types:Droptree
假设 Sitecore 项目 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;
}
您需要将项目值传递给您的 <sc:Text/>
标签,否则它将使用上下文项目。
<sc:Text Field="Created by" Item="<%# RelatedItem %>" runat="server"/>
在代码后面设置 RelatedItem
的值,并在 Page_Load()
方法的末尾调用 DataBind();
我认为无法使用 <sc:Text />
呈现项目的名称,因为它是 field 呈现器。
所以你必须像以前那样做:
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 属性 设置为您要从中读取 Headline 字段的项目:
scRelatedItem.Item = createdByItem;
这样做还可以让编辑人员通过页面编辑器(在 Sitecore 8 中称为体验编辑器)编辑该字段。
假设 Sitecore 项目 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;
}
您需要将项目值传递给您的 <sc:Text/>
标签,否则它将使用上下文项目。
<sc:Text Field="Created by" Item="<%# RelatedItem %>" runat="server"/>
在代码后面设置 RelatedItem
的值,并在 Page_Load()
方法的末尾调用 DataBind();
我认为无法使用 <sc:Text />
呈现项目的名称,因为它是 field 呈现器。
所以你必须像以前那样做:
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 属性 设置为您要从中读取 Headline 字段的项目:
scRelatedItem.Item = createdByItem;
这样做还可以让编辑人员通过页面编辑器(在 Sitecore 8 中称为体验编辑器)编辑该字段。