ASP.NET(VS2013) でWebアプリを作っています。
データベースから取得したデータをGridViewにBindしています。
特定のカラムを編集したくて OnDataBound イベントにて以下のようにしてTextBoxを追加しました。

foreach (GridViewRow rw in GridView1.Rows)
{
TextBox txt = new TextBox();
txt.Text = rw.Cells[2].Text;
rw.Cells[2].Controls.Add(txt);
}

この後、TextBoxの値を取得したいのですが、

foreach (GridViewRow rw in GridView1.Rows)
{
TextBox txt = (TextBox)rw.Cells[2].Controls[0];
xx = txt.Text;
}

ではうまくいきません。Controlsがないようです。
どうすればTextBoxの値を取得できるでしょうか。