我已经看到 (3)DataList
在 ASP.NET 中使用嵌套或中继器的不同示例,但都使用原始DataTable/DataSet
和CreateChildView
调用的组合来创建外部和内部之间的关系DataList
。
好吧,因为它是 2013 年而不是 2003 年,所以我有一个具有以下结构的类:
public class Customer
{
public string FullName { get; set; }
public List<Orders> { get; set; }
}
这个想法是Orders
集合是内部嵌套DataSource
的绑定。问题是我似乎无法弄清楚如何在绑定代码中设置关系。内部 DataList 实际上不能通过Intellisense 在代码中直接访问,因为它嵌套在主 DataList 下。这是事件中查找内部并分配其using的典型代码: DataList
ItemDataBound
DataList
DataSource
CreateChildView
protected void outerRep_ItemDataBound(object sender, DataListItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item)
{
DataRowView drv = e.Item.DataItem as DataRowView;
DataList innerDataList = e.Item.FindControl("innerDataList") as DataList;
innerDataList.DataSource = drv.CreateChildView("OrdersRelation");
innerDataList.DataBind();
}
}
我看到的所有示例中的“OrdersRelation”设置如下:
// Attach the relationship to the dataSet
ds.Relations.Add(new DataRelation("OrdersRelation", ds.Tables[0].Columns["OrderID"],
ds.Tables[1].Columns["OrderID"]));
outerDataList.DataSource = ds.Tables[0];
outerDataList.DataBind();
显然这不适用,因为我正在使用一个强类型对象,其集合属性为“Orders”。
如何获得相同的结果并将我的内部绑定DataList
到我的Orders
集合属性?