我用Label l = (Label)DataList1.Items[0].FindControl("Label1"); String a=l.Text;获取datalist里面的一个label的ID
 运行的时候说是未定义的实例  
是因为(Label)DataList1.Items[0].FindControl("Label1")的值是null?

解决方案 »

  1.   

    判断Item类型如:        DataList dl = new DataList();
            foreach(DataListItem item in dl.Items)
            {
                if (item.ItemType == ListItemType.Item || item.ItemType == ListItemType.AlternatingItem)
                { }
            }
      

  2.   

    没有获取到
    datalist怎么绑定的?
      

  3.   

    你在事件里可以这样取ID啊DataList1.DataKeyField[e.Item.ItemIndex].ToString()
      

  4.   

    protected void Datalist1_ItemDataBound(object sender, DataListItemEventArgs e)
    {
     if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
    {
    Label l = (Label)e.Item.FindControl("Label1");
    String a = l.Text;
    }
    }
      

  5.   

    if (item.ItemType == ListItemType.Item || item.ItemType == ListItemType.AlternatingItem)
                { }这句很重要。