我试图在后端C#代码的droplink中获取项目的显示名称.我正在使用Sitecore 6.6,而不是使用MVC,并且在CMS中为被调用的客户端设置了droplink控件Address.droplink源转到/sitecore/Templates/User Defined/WAC/Address,并且各个项目具有符合SEO的名称和可读的显示名称.
例如:
我的代码:
protected void Page_Load(object sender, EventArgs e)
{
String sl = "";
Sitecore.Data.Items.Item currentItem = Sitecore.Context.Item;
// BEGIN main class list
Sitecore.Collections.ChildList classList = currentItem.Children;
foreach (Sitecore.Data.Items.Item mainPage in classList)
{
if (mainPage.TemplateID.ToString() == "{27A9692F-AE94-4507-8714-5BBBE1DB88FC}")
{
sl += "<span class=\"address\">" + mainPage.Fields["Address"] +"</span>";
}
else
{
}
}
// END main class list
classSessionList.Text = sl;
}
Run Code Online (Sandbox Code Playgroud)
此代码将为我提供项目的ID.如果我使用mainPage.Fields["Address"].DisplayName,我会得到"地址".
如何从droplink获取项目的显示名称?
小智 7
使用LookupField获取以下参考项是示例代码:
LookupField address= (LookupField)mainPage.Fields["Address"];
Item addressItem = address.TargetItem;
string displayName = addressItem.Fields["DisplayName"].Value;
Run Code Online (Sandbox Code Playgroud)
如果你想在一行中使用它,那么使用下面的代码:
((LookupField)mainPage.Fields["Address"]).TargetItem.DisplayName
Run Code Online (Sandbox Code Playgroud)
将字段类型转换为 ReferenceField。然后访问 TargetItem 属性:
sl += "<span class=\"address\">" + ((ReferenceField)mainPage.Fields["Address"]).TargetItem.DisplayName +"</span>";
Run Code Online (Sandbox Code Playgroud)