描述如下:
.aspx 中有如下表单
<asp:TextBox ID="name1" runat="server" Width="100" ></asp:TextBox>
<asp:TextBox ID="name2" runat="server" Width="100" ></asp:TextBox>
<asp:TextBox ID="name3" runat="server" Width="100" ></asp:TextBox>
<asp:TextBox ID="name4" runat="server" Width="100" ></asp:TextBox>
<asp:TextBox ID="name5" runat="server" Width="100" ></asp:TextBox>
如何在.apsx.cs文件中循环获取从name1到name5的值

解决方案 »

  1.   

    for (int i = 0; i < 5; i++)
    {
        Response.Write((Form.FindControl("name" + i.ToString()) as TextBox).Text);
    }
      

  2.   

    TextBox t;
    foreach (Control ctl in Form.Controls)
    {
        t = ctl as TextBox;
        if (t.ID.IndexOf("name") > -1)
        {
            Response.Write(t.Text);
        }
    }这个没有上一个好..
      

  3.   


    private void SearchControls(ControlCollection subControls)
    {
        //Search all controls
        foreach (Control control in subControls)
        {
            if (control.Controls.Count > 0)
            {
                SearchControls(control.Controls);
            }
            else if (control is TextBox)
            {
                TextBox currentControl = control as TextBox;
                Response.Write(currentControl.Text);
            }
        }
    }
    调用 SearchControls(Page.Controls)
      

  4.   

    递归可能会好点..如果你的textbox所在的层次很深的话.
      

  5.   

    foreach (Control control in subControls)
        {
            if (control.Controls.Count > 0)
            {
                SearchControls(control.Controls);
            }
            else if (control is TextBox)
            {
                TextBox currentControl = control as TextBox;
                Response.Write(currentControl.Text);
            }
        }
      

  6.   

    上面的问题已解决
    谢谢大家
    不过在下还有个同类型的问题
    如何循环获取隐藏表单中的值
    如下:
    <input type="hidden" id="HiddenSubjectsID0" name="HiddenSubjectsID0" runat="server" style="width: 33px" />
    <input type="hidden" id="HiddenSubjectsID1" name="HiddenSubjectsID1" runat="server" style="width: 33px" />
    <input type="hidden" id="HiddenSubjectsID2" name="HiddenSubjectsID2" runat="server" style="width: 33px" />
      

  7.   

    for (int i = 1; i <= 10; i++)
                {
                    Hidden  textbox= this.FindControl("HiddenSubjectsID" + i.ToString()) as Hidden;
                    if (null != textbox)
                    {
                        Response.Write(textbox.Text);
                    }
                }