我是这样做的:Label l = (Label)this.Page.FindControl("Label1");但是获得的却总是null

解决方案 »

  1.   

    先找Control
    再找Label如
    Control c = this.form1.FindControl();
    Label l = c.FindControl("Label1");
      

  2.   

    因为我是想遍历,所以··请大家告诉我应怎么改····        for (int i = 1; i <= 26; i++)
            {
                
                l = (Label)this.Page.FindControl("Label" + i.ToString());            l.Text = "";
            }
      

  3.   

    你可以将User.ascx 的Label1做成属性:
    public Label getLabel1
    {
    get{return Label1;}
    }
    在调用User.ascx控件的页面:
    假如User.ascx在页面name 为:uc1

    string s=uc1.getLabel1;
      

  4.   

    LZ是想在应用页面里面获得自定义控件里的控件吧,其实个人觉得没必要这样做,你可以以属性的方式提供给外面访问啊,
    比如这里就可以在自定义控件里面写一个属性:public Label LabelControl
    {
       get
       {
           return Label1;
       }
    }
    在外面就可以直接访问了啊。
      

  5.   


    还是报错,我这是在 User.ascx.cs 文件中遍历,不是在 aspx.cs 中
      

  6.   

    name 是什么,你说的name是什么的属性····
      

  7.   

    你试试看for (int i = 1; i <= 26; i++)

    ((this.Page.FindControl("User1") as UserControl).FindControl("Label" + i.ToString()) as Label).Text = i.ToString();
    }
      

  8.   

    你循环的Label是你一个个放进去的吗
    还是放到一个像DataList控件里面的
      

  9.   

    就是你这个User.ascx在页面上ID,应该不叫name哦
      

  10.   

    比如:
    <%@ Register Src="../UserControl/User.ascx" TagName="User" TagPrefix="uc1" %>
    <uc1:UC_Header ID="User1" runat="server"></uc1:User>就是
    string s=User1.getLabel1;
               
      

  11.   

    <uc1:UC_Header ID="User1" runat="server"> </uc1:User> 
    贴错:
    <uc1:User ID="User1" runat="server"> </uc1:User> 
      

  12.   


            int i = 21;
            for (i = 1; i <= 21; i++)
            {
                Label lb = (Label)this.Page.FindControl("Label" + i.ToString());            Response.Write(lb.Text);
            }
    这个没错啊,可以遍历得到label 的值