Default.aspx という名前の asp.net ページがあり、そのマスター ページは Site.master です。Default.aspx で、3 つのデータバインド フィールドと 1 つの Templatefield を含むグリッドビューを追加し、この templatefield 内に TextBox をドラッグしました。
FindControl メソッドを使用して、このグリッドビューの各行のテキスト ボックスの値を取得しようとしていますが、何も返されません。
これらの値を取得するために使用しているコードは次のとおりです。
For Each gvr As GridViewRow In GridView1.Rows
Dim tb As TextBox = DirectCast(gvr.FindControl("TextBox1"), TextBox)
Dim txt As String = tb.Text
MsgBox(txt)
Next
注: masterPages を使用していますが、これが問題の原因であると考えています。
[編集]
Page_load イベントでは、グリッドビューをバインドするために、次のコードを使用しています。
GridView1.DataSource = f.xDa
GridView1.DataBind()
Button1 に、次のコードを追加しました。
For Each gvr As GridViewRow In GridView1.Rows
Dim tb As TextBox = DirectCast(gvr.FindControl("TextBox1"), TextBox)
Dim txt As String = tb.Text
MsgBox(txt)
Next
しかし、私は常に空のテキストボックスを取得しています。
みんなありがとう!