asp.net 如何循环读出多个(一组)Textbox的值

解决方案 »

  1.   

    C#没有控件数组,只能这样:
    Textbox[] t = new Textbox[]{ t1,t2,......};for(int i=0 i < t.Length ; i++)
        t[i].Text=i+"";
      

  2.   

    前台
    <table>
         <tr>
            <td>
               <asp:TextBox ID="txt_item1" runat="server" Width="450px"></asp:TextBox>
               <asp:TextBox ID="txt_item2" runat="server" Width="450px"></asp:TextBox>
               <asp:TextBox ID="txt_item3" runat="server" Width="450px"></asp:TextBox>
               <asp:TextBox ID="txt_item4" runat="server" Width="450px"></asp:TextBox>
               <asp:TextBox ID="txt_item5" runat="server" Width="450px"></asp:TextBox>
            </td>
         </tr>
    </table>后台如何循环读取textbox的值 for (int i = 1; i <= 5;i++ )
     {
          TextBox mytextbox = new TextBox();
          mytextbox.ID = "txt_item" + i.ToString();
          string text = mytextbox.Text;
     }为何这种方法取出来的值总是为空
      

  3.   

    你这里取出肯定是空的嘛,你根本就没有取页面上TextBox的值,而是取的你实例化的TextBox的值
      

  4.   

    <td runat="server" id="td">
              <asp:TextBox ID="txt_item1" runat="server" Width="450px"> </asp:TextBox>
              <asp:TextBox ID="txt_item2" runat="server" Width="450px"> </asp:TextBox>
              <asp:TextBox ID="txt_item3" runat="server" Width="450px"> </asp:TextBox>
              <asp:TextBox ID="txt_item4" runat="server" Width="450px"> </asp:TextBox>
              <asp:TextBox ID="txt_item5" runat="server" Width="450px"> </asp:TextBox>
            </td>后台:foreach(Control c in td.Controls)
    {
        if(c is TextBox)
        {
            TextBox tb = c as TextBox;
            //tb.Text
        }
    }
      

  5.   

    后台如何循环读取textbox的值 for (int i = 1; i <= 5;i++ ) 

          TextBox mytextbox = this.FindControl("txt_item" + i) as TextBox ;
          string text = mytextbox.Text; 
      

  6.   

    if(Request.Params["txt_item" + i.ToString()]
    {
    Request.Params["txt_item" + i.ToString()].ToString()
    }
      

  7.   


     for (int i = 1; i <= 5; i++)
            {
                string text = string.Empty;
                string id = "mytextbox" + i;
                TextBox tb = Page.FindControl(id) as TextBox;
                if (tb != null && tb is TextBox)
                    text = tb.Text;
            }
      

  8.   


    为什么会出现
    “td.InnerHtml”引发了“System.NotSupportedException”类型的异常
    “td.InnerText”引发了“System.NotSupportedException”类型的异常
      

  9.   

    前台 
    <table runat="server" id="tb">
       <tr>
           <td>
             所属问题:
            </td>
           <td>
             <asp:DropDownList ID="ddl1" runat="server">
             </asp:DropDownList></td>
       </tr>
       <tr>
           <td>
              选项1:
            </td>
           <td>
              <asp:TextBox ID="txt_item1" runat="server" Width="450px"></asp:TextBox>
           </td>
       </tr>
       <tr>
           <td>
               选项2:
            </td>
           <td>
               <asp:TextBox ID="txt_item2" runat="server" Width="450px"></asp:TextBox>
           </td>
       </tr>
       <tr>
           <td>
               选项3:
            </td>
           <td>
              <asp:TextBox ID="txt_item3" runat="server" Width="450px"></asp:TextBox>
           </td>
       </tr>
       <tr>
           <td>
              选项4:
            </td>
           <td>
             <asp:TextBox ID="txt_item4" runat="server" Width="450px"></asp:TextBox>
           </td>
       </tr>
       <tr>
           <td>
              选项5:
            </td>
           <td>
              <asp:TextBox ID="txt_item5" runat="server" Width="450px"></asp:TextBox>
           </td>
      </tr>
      <tr><td>
              <asp:Button ID="btn_items" runat="server" Text="确定" CssClass="button" OnClick="btn_items_Click" /></td></tr>
    </table>后台
    protected void btn_items_Click(object sender, EventArgs e)
    {
            string quesid = ddl1.SelectedValue;
            foreach(Control c in tb.Controls)
            {
                if (c is TextBox)
                {
                    TextBox mytextbox = c as TextBox;
                    if (mytextbox.Text == "")
                    {
                        continue;
                    }
                    else
                    {
                        string sqlstr = "insert into Tb_Answer (AnswCont,QuesID) values ('" + mytextbox.Text + "','" + quesid + "')";
                        try
                        {
                            DBOperator.Exesql(sqlstr);
                            Response.Write("<script language='javascript'>alert('添加成功!');window.location.href = 'DCWJ.aspx'</script>");
                        }
                        catch (Exception)
                        {
                            Response.Write("<script language='javascript'>alert('添加失败!');</script>");
                        }
                    }
                }
    }
      

  10.   

    以上代码里只看到Table是使用Runat="server" ID=”tb"你出错的td是那个?
      

  11.   


    <table runat="server" id="tb"> 
     foreach(Control c in tb.Controls) 

    }
      

  12.   

    我那个例子是在td上加runat="server"的,你要在table处加的话就要遍历table中的所有单元格            foreach (HtmlTableRow htr in tb.Rows)
                {
                    foreach (HtmlTableCell htc in htr.Cells)
                    {
                        foreach (Control c in htc.Controls)
                        {
                            if (c is TextBox)
                            {
                                TextBox tb = c as TextBox;
                                Response.Write(tb.Text + "<br>");
                            }
                        }
                    }
                }
      

  13.   

    用Request.Form["..."+ i]来取值啦....
      

  14.   

    我建议你不要用遍历所有控件的方法,你想如果你Table中有很多控件的话,会影响效率。
    建议你使用FindControl的方式,也就是我上面写那种,那么你现在这个问题应该不存在