datalist 嵌套 datalist 就相当于双循环,里面的那个datalist 显示的内容跟外面的那个datalist 的值有关联, 下面是个小练习,代码如下
=======页面代码
<form id="form1" runat="server">
<div>
<asp:DataList ID="DataList1" runat="server" Width="198px" Style="border: 5px" RepeatColumns="1"
OnItemDataBound="DataList1_ItemDataBound" ForeColor="Blue">
<ItemTemplate>
<table class="table02" id="Table13" cellspacing="0" cellpadding="0" width="100%"
align="center" border="0">
<tr bgcolor="#f5f5f5">
<td width="50%" height="30">
<asp:Label ID="Label2" runat="server" Text='<%#Eval("Name") %>'></asp:Label>
</td>
</tr>
</table>
<asp:DataList ID="dlsProductInfo" Width="100%" runat="server" Style="background-color: Green;
color: red" RepeatColumns="1">
<ItemTemplate>
<table id="Table14" cellspacing="0" cellpadding="0" width="100%" align="center" border="0">
<tr bgcolor="#f5f5f5">
<td width="50%" height="30">
<asp:Label runat="server" ID="lblName" Text='<%#Eval("cName") %>'></asp:Label>
</td>
</tr>
</table>
</ItemTemplate>
</asp:DataList>
</ItemTemplate>
</asp:DataList>
</div>
</form>
======后台代码
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
SqlConnection conn = new SqlConnection("server=.;database=test;uid=sa;pwd=sasa");
DataSet ds = new DataSet();
string sql = "select * from zhuInfo ";
SqlDataAdapter da = new SqlDataAdapter(sql, conn);
da.Fill(ds, "zhuInfo");
this.DataList1.DataSource = ds.Tables[0];
this.DataList1.DataBind();
}
}
protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
DataList dataList = (DataList)e.Item.FindControl("dlsProductInfo");
DataRowView rowv = (DataRowView)e.Item.DataItem;
string name = rowv["Name"].ToString();
if (name.Length > 0)
{
DataSet ds = select(name); //获取从数据。
if (ds != null)
{
try
{
dataList.DataSource = ds.Tables[0];
dataList.DataBind();
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
}
}
}
public DataSet select(string name)
{
SqlConnection conn = new SqlConnection("server=.;database=test;uid=sa;pwd=sasa");
DataSet ds = new DataSet();
string sql = "select * from congInfo where zName='" + name + "'";
SqlDataAdapter da=new SqlDataAdapter(sql,conn);
da.Fill(ds,"congInfo");
return ds;
}