页面上有ID分别为Lable1,Lable2,Lable3,Lable4,Lable5,Lable6的6个控件。
我现在想通过一个循环分别给6个控件赋值,如this.findControl(Lable[i]).Text=i.toString();来给六个控件赋值。为什么总是找不到控件?请大侠指点!
谢谢!

解决方案 »

  1.   

    for(int i=1;i<=6;i++)
    {
     Label l=this.FindControl("Lable"+i) as Label ;
     if(l!=null){}
    }
      

  2.   


    for (int i = 1; i <= 6; i++)
    (this.FindControl("Label" + i.ToString()) as Label).Text = i.ToString();
      

  3.   


    <form id="form1" runat="server">
        <div>
             <asp:Label ID="Label1" runat="server" ></asp:Label>
            <asp:Label ID="Label2" runat="server" ></asp:Label>
            <asp:Label ID="Label3" runat="server" ></asp:Label>
            <asp:Label ID="Label4" runat="server" ></asp:Label>
            <asp:Label ID="Label5" runat="server" ></asp:Label>
            <asp:Label ID="Label6" runat="server" ></asp:Label>
        </div>
        </form>
      protected void Page_Load(object sender, EventArgs e)
        {
            if(!Page.IsPostBack)
            {
                for (int i = 1; i <= 6; i++)
                {
                    Label lb = this.FindControl("Label" + i.ToString()) as Label;
                    if (lb != null)
                    { lb.Text = i.ToString(); }
                }
            }
        }
      

  4.   

    可以参考 sp1234的大作:
    http://topic.csdn.net/u/20090531/17/3b26928d-676e-457c-b007-7c7523cada30.html?seed=1316272472
      

  5.   

    +1
    还要注意容器级别,如form内的控件直接用findcontrol方法,panel内的控件用panel1.findcontrol方法