我已經看到(3)在ASP.NET中使用嵌套的DataList
或Repeater的不同示例,但都使用原始DataTable/DataSet
和CreateChildView
調用的組合來創建關係在外部和內部之間DataList
。如何使用屬性集合綁定到嵌套的DataList
好,因爲它是2013,而不是2003年,我有以下結構的類:
public class Customer
{
public string FullName { get; set; }
public List<Orders> { get; set; }
}
的想法是,Orders
收集什麼必然的DataSource
爲內,嵌套DataList
。問題是我似乎無法弄清楚如何在綁定的代碼中設置關係。內部DataList實際上是而不是,它通過Intellisense直接在代碼中訪問,因爲它嵌套在主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();
顯然這不適用,因爲我正在使用強類型對象,其上具有「訂單」的集合屬性。
我該如何達到相同的結果並將我的DataList
綁定到我的Orders
集合屬性?