原理:在生成datalist列時ItemDataBound觸發,也就是說每生成一列就觸發一次。這個事件的觸發要早於itemcommand.
datalist裏面嵌套datalist :
內層控件數據綁定與事件聲明在外層的ItemDataBind中實現
private void dlFileType_ItemDataBound(object sender, System.Web.UI.WebControls.DataListItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
DataList dl = null;
Label labTypeID = null;
dl = (DataList)e.Item.FindControl("dlFileList")
labTypeID = (Label)e.Item.FindControl("lbFileType");
string typeID = labTypeID.Text.ToString();
int iTypeID = Convert.ToInt32(typeID);
string commandText = "select * from tbfile";
commandText = commandText + " Where TypeID=" + iTypeID;
//------------
string connString = ConfigurationSettings.AppSettings["dsn"];
SqlConnection conn = new SqlConnection();
conn.ConnectionString = connString;
conn.Open();
SqlDataAdapter myCommand = new SqlDataAdapter(commandText,conn);
DataSet ds = new DataSet();
myCommand .Fill(ds,"tbFile");
conn.Close();
//------------
dl.DataSource = ds.Tables["tbFile"];;
dl.DataBind();
}
}
protected void dtdaleibie_ItemDataBound(object sender, DataListItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
DataList temlist = (DataList)e.Item.FindControl("dtxiaoleibie");
Label lbvist = (Label)e.Item.FindControl("lbvist");
int id=Convert.ToInt32(lbvist.Text);
tongyong ty = new tongyong();
tongyong.selecontent = "*";
tongyong.table = "YX_ProductClass";
tongyong.where = "YX_ParentID="+id;
tongyong.orderby = "order by YX_OrderID,YX_ID asc";
temlist.DataSource = ty.search();
temlist.DataBind();
}
}