一定要在大分类的 ItemDataBound 事件里写
protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e)
{


if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
DataList myDataList1 = (DataList)e.Item.FindControl("DataList2");

//找到分类关联的数据项
DataRowView row = (DataRowView)e.Item.DataItem;
//提取分类ID
int type1 = Convert.ToInt32(row["id"]);

//根据type1得到typ2的数据
//GetTop3List 是一个方法 得到每个大分类的前三个数据
myDataList1.DataSource = bll.GetTop3List(type1);
myDataList1.DataBind();
}
}