<asp:GridView ID="GridView" runat="server" AutoGenerateColumns="False" Width="100%" Height="100%" >
    <Columns>
        <asp:TemplateField>
            <ItemTemplate>
               <asp:TextBox ID="TextBox" runat="server" maxlength='3' Text="0" ></asp:TextBox>分</div>
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView> protected void Button_Click(object sender, EventArgs e)
    {
        for (int i = 0; i <= GridView.Rows.Count - 1; i++)
        {
            TextBox TextBox = (TextBox)GridView.Rows[i].FindControl("TextBox");            Response.Write(TextBox.Text.ToString());
        }
    }
ItemTemplate中的TextBox是一个手动输入的值.
每次在TextBox中输入数值,但这个值取不到.我要如何取这个值!

解决方案 »

  1.   

    TextBox TextBox = (TextBox)GridView.Rows[i].FindControl("TextBox").Controls(0);
      

  2.   

     ((TextBox)(GridView1.Rows[e.RowIndex].Cells[1].Controls[0])).Text.ToString().Trim();
      

  3.   

     TextBox TextBox = (TextBox)GridView.Rows[i].Cells[0].FindControl("TextBox");
    加上Cells
      

  4.   

    TextBox TextBox = (TextBox)GridView.Rows[i].FindControl("TextBox").Controls(0); 
      

  5.   

    你绑定GridView的语句有没有写在if(!IsPostBack)里面
      

  6.   

    光看代码感觉没有错误,请调试查看下..
    是否textbox没值
      

  7.   

     foreach (GridViewRow row in this.GridView1.Rows)
            {
                TextBox tb = (TextBox)row.FindControl("tb_Name");
            }
    用这种方法就能获得文本框的值