我datalist的项模板里面有一个label控件,如果id为mylabel请问怎样用findcontrol方法找到它

解决方案 »

  1.   

    Label myControl = (Label)DataList.FindControl("mylabel");
      

  2.   

    上面的DataList应该是你对应的DataList的ID才是
      

  3.   

    在一个button事件里面是这样的:Label label = (Label)DataList.Items[行].FindControl("mylabel");
    若是在DataList1_ItemDataBound事件里面找的话应该是:
    Label label =(Label)e.Item.FindControl("mylabel");
      

  4.   

    请问我如果把 "[行]" 改成变量的话,然后用一个循环,是不是可以把里面的控件都找出来了,如果DataList里面有 SeparatorTemplate模板,交替项模板等一些模板,会不会对 Label label = (Label)DataList.Items[行].FindControl("mylabel"); 这个表达式产生影响呢? 
      

  5.   

    控件我是能找到了,我的另一问题是:我想用DataList练习做一简单论坛,
    我想把项的编号赋给论坛上面的楼层数即DataList里面的Label值
    protected void DataList1_ItemCreate(object sender, DataListItemEventArgs e)
        {
            for (int i = 0; i < DataList1.Items.Count; i++)
            {
                Label floors = (Label)DataList1.Items[i].FindControl("Label的ID");
                floors.Text = i.ToString();
            }
        }
    这样只有一个项模板的时候不会出错,但如里在DataList里加了一个分隔符模板就会报错:"未将对象引用设置到对象实例"
    请问大家这是什么原因呀?
      

  6.   

    1,是的,也可用foreach循环
    2,会,那样的话要先判断
    ...
    object t=......FindControl("mylabel");
    if(t!=null)
        Label lable=(Label)t;
    ...