asp.net datalist 嵌套的问题
con.Open();if(e.Item.ItemType==ListItemType.Header||e.Item.ItemType==ListItemType.Alt...
con.Open();
if (e.Item.ItemType == ListItemType.Header || e.Item.ItemType==ListItemType.AlternatingItem)
{
if ((DataList)e.Item.FindControl("DataList2")!=null)
{
DataList lista = (DataList)e.Item.FindControl("DataList2");
DataRowView drv = (DataRowView)e.Item.DataItem;
int k = Convert.ToInt32(drv.Row["id"]);
string str = "select *from biao2 where id ='" + k+ "' order by id1 desc";
SqlDataAdapter ada = new SqlDataAdapter(str,con);
DataSet set = new DataSet();
ada.Fill(set);
lista.DataSource = set;
lista.DataBind();
}
}
}
为什么我去掉if (e.Item.ItemType == ListItemType.Header || e.Item.ItemType==ListItemType.AlternatingItem) 以后就能显示datalist2里的数据,一起却不能显示 展开
if (e.Item.ItemType == ListItemType.Header || e.Item.ItemType==ListItemType.AlternatingItem)
{
if ((DataList)e.Item.FindControl("DataList2")!=null)
{
DataList lista = (DataList)e.Item.FindControl("DataList2");
DataRowView drv = (DataRowView)e.Item.DataItem;
int k = Convert.ToInt32(drv.Row["id"]);
string str = "select *from biao2 where id ='" + k+ "' order by id1 desc";
SqlDataAdapter ada = new SqlDataAdapter(str,con);
DataSet set = new DataSet();
ada.Fill(set);
lista.DataSource = set;
lista.DataBind();
}
}
}
为什么我去掉if (e.Item.ItemType == ListItemType.Header || e.Item.ItemType==ListItemType.AlternatingItem) 以后就能显示datalist2里的数据,一起却不能显示 展开
1个回答
展开全部
ListItemType.Header指的是标题栏,ListItemType.AlternatingItem指的是交替行。这段代码是指外层DataList中,是标题行或交替行时才对里层的DataList进行数据绑定。而在外层DataList的Header中是找不到内层的DataList2的。如果条件中只保留 e.Item.ItemType==ListItemType.AlternatingItem这个判断,显示的数据会少一半。因而那个if语句的判断应该是这样的:
if(e.Item.ItemType == ListItemType.Item)
if(e.Item.ItemType == ListItemType.Item)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询