对不起,我想简化让用户理解我的问题。 我有一个包含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