一、新建一個aspx文件,在裏面加入一個DataList
第二步,編輯DataList的項模版
第三步:在項模板的“ItemTemplate”裏輸入“訂單號”、“客戶”,並在“客戶”後再添加一個DataList。
第四步:編輯HTML文件,在“訂單號”後面添加“<%# DataBinder.Eval(Container.DataItem, "訂單ID") %>”;在“客戶ID”後面添加“<% # DataBinder.Eval(Container.DataItem, "客戶ID") %>”。在“<asp:DataList id="DataList2" runat="server">”和“</asp:DataList>”中間添加“<HeaderTemplate>訂單詳細</HeaderTemplate><ItemTemplate>產品編號:<%# DataBinder.Eval(Container.DataItem, "產品ID") %>; 單價:<%# DataBinder.Eval(Container.DataItem, "單價") %>; 數量:<%# DataBinder.Eval(Container.DataItem, "數量") %>; 折扣:<%# DataBinder.Eval(Container.DataItem, "折扣") %></ItemTemplate>”
最後的DataList部分應該是:
<asp:DataListid="DataList1"runat="server">
<ItemTemplate>
<P>訂單號:<%# DataBinder.Eval(Container.DataItem, "訂單ID") %><BR>
客戶:<%# DataBinder.Eval(Container.DataItem, "客戶ID") %><BR>
<asp:DataListid="DataList2"runat="server">
<HeaderTemplate>
訂單詳細
</HeaderTemplate>
<ItemTemplate>
產品編號:<%# DataBinder.Eval(Container.DataItem, "產品ID") %>;單價:<%# DataBinder.Eval(Container.DataItem, "單價") %>;
數量:<%# DataBinder.Eval(Container.DataItem, "數量") %>; 折扣:<%# DataBinder.Eval(Container.DataItem, "折扣") %>;
</ItemTemplate>
</asp:DataList></P>
</ItemTemplate>
</asp:DataList>
第五步:編輯cs文件。加入“using System.Data.OleDb;”的引用。然後在“private void Page_Load(object sender, System.EventArgs e)”的上面加上“protected OleDbConnection conn = new OleDbConnection("provider=microsoft.jet.oledb.4.0;data source=C://Program Files//Microsoft Office//OFFICE11//SAMPLES//Northwind.mdb");”
注意,這裏用的是Office2003自帶的Northwind.mdb數據庫,如果安裝的是Office2000的話,路徑則爲:C:/Program Files/Microsoft Office/OFFICE10/SAMPLES,可自行修改。
第六步:在“private void Page_Load(object sender, System.EventArgs e)”里加上
string strSql = "select top 10 訂單ID,客戶ID from 訂單 order by 訂購日期 desc";
conn.Open();
OleDbDataAdapter myAdapter = new OleDbDataAdapter(strSql,conn);
DataSet ds = new DataSet();
myAdapter.Fill(ds,"ds");
conn.Close();
this.DataList1.DataSource = ds.Tables[0].DefaultView;
this.DataList1.DataBind();
如此,綁定了第一個DataList。
第七步:要綁定DataList裏的那個DataList,還要回到aspx頁面,選中DataList,在屬性項的“ItemDataBound”上雙擊,然後會自動跳到cs頁面
第八步:在自動跳轉的cs頁面的“private void DataList1_ItemDataBound(object sender, System.Web.UI.WebControls.DataListItemEventArgs e)”下加入以下代碼:
DataRowView drv = (DataRowView)(e.Item.DataItem);
if (drv!=null)
{
DataList DataList2 = (DataList)e.Item.FindControl("DataList2");
if (DataList2!=null)
{
string strSql = "select * from 訂單明細 where 訂單ID = "+drv["訂單ID"].ToString();
conn.Open();
OleDbDataAdapter myAdapter = new OleDbDataAdapter(strSql,conn);
DataSet ds = new DataSet();
myAdapter.Fill(ds,"ds");
conn.Close();
DataList2.DataSource = ds.Tables[0].DefaultView;
DataList2.DataBind();
}
}
第九步:編譯生成,再查看即可