對不起,我想簡化讓用戶理解我的問題。 我有一個包含DepartmentItem
和EmployeeItem
的列表。按對象列表中的項目(Sitecore項目)分組,並與Repeater綁定
var empSubRelList = new List<EmpDeptRel>();
internal class EmpDeptRel
{
public Item DepartmentItem { get; set; }
public Item EmployeeItem { get; set; }
}
這是解釋我如何我將項目添加到列表中的代碼:
Item userProfile = Sitecore.Context.Database.GetItem("/sitecore/content/Intranet/User Profiles");
foreach (var subRelItem in userProfile.Axes.GetDescendants().Where(p => p.TemplateID.ToString() == Settings.GetSetting("SubRelTemplateID")
&& p["Subsidiary"] == SubssdiaryItem.ID.ToString()).OrderBy(p => p["Department"]))
{
empSubRelList.Add(new EmpDeptRel
{
DepartmentItem = GetItemById(subRelItem["Department"]),
EmployeeItem = subRelItem.Parent.Parent
});
}
我有一箇中繼器將其綁定:
repEmployees.DataSource = empSubRelList;
repEmployees.DataBind();
<asp:Repeater runat="server" ID="repEmployees">
<ItemTemplate>
<li>
<%# Name(Eval("DepartmentItem") as Item)%>
<%# Name(Eval("EmployeeItem") as Item)%>
</li>
</ItemTemplate>
這裏是在中繼器內的方法「Name()
」的代碼
protected string Name(Item item)
{
if (item != null)
{
return item.Name;
}
return string.Empty;
}
輸出是:
IT TestUser1
Administration TestUser2
Administration TestUSer3
Administration TestUser4
Administration TestUser5
Finance TestUSer6
是它在某種程度上可以組列表「empSubRelList」隨着處,讓我可以輸出以下內容:
IT TestUser1
Administration TestUser2 TestUser3 TestUser4 TestUser5
Finance TestUser6
我認爲這可以幫助你http://stackoverflow.com/questions/20637654/ho w-to-retrieve-common-items-from-list-c-sharp – Nikolay