DOBON.NET DOBON.NETプログラミング掲示板過去ログ

■動的に作ったテーブルのデータを取得したい

環境/言語:[VB.NET]
分類:[ASP.NET]

カゴです。Webフォームでの構築で困っています。
先日、動的に作るテーブルにテキストボックスを設定する方法を教えていただきましたが、
そのテキストボックスに設定した値を取得する方法が分からなくなりました。
Table1.Rows(0).Cells(0).Textで取得しようとすると値はNULLになっています。
conTextBox(x).Textでは取得できますが、これだとテーブル上のどこにデータがあるのか
分かりづらいので、テーブル上の行と列を指して取得したいのですが、
どうすれば良いのか詳しい方がいらしたら教えてください。
下記がそのコーディングです。
お願いします。

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
' ページを初期化するユーザー コードをここに挿入します。
Dim x As Integer
Dim conTextBox(4) As System.Web.UI.WebControls.TextBox ' TextBoxの数

Form1.Controls.Remove(Table1)
Dim tbRow As New TableRow
For x = 0 To 3
' セルの作成
Dim tbCell As New TableCell
' コントロール(TextBox)の作成
conTextBox(x) = New System.Web.UI.WebControls.TextBox
Me.FindControl("Form1").Controls.Add(conTextBox(x))
conTextBox(x).Text = x
tbCell.Controls.Add(conTextBox(x))
tbRow.Cells.Add(tbCell)
Next
Table1.Rows.Add(tbRow) 'テーブルへの行の追加
Form1.Controls.Add(Table1) 'フォームへのテーブルの追加

Label1.Text = Table1.Rows(0).Cells(0).Text 'テーブルの内容の表示

End Sub
はやぞうと申します。

下記の方法をお試しください。

Dim tbCell As New TableCell
For Each tbCell In Table1.Rows(0).Cells
    Dim conTextBox As TextBox = CType(tbCell.Controls(0), TextBox)
    ' ここで conTextBox.Text とすると値を取得出来ます。
Next

上記で[tbCell.Controls(0)]としていますが、動的に作成したCell内に
コントロールが一個しかない場合にのみうまく動作します。

ご参考までに。

    以上

■No2791に返信(カゴさんの記事)
> カゴです。Webフォームでの構築で困っています。
> 先日、動的に作るテーブルにテキストボックスを設定する方法を教えていただきましたが、
> そのテキストボックスに設定した値を取得する方法が分からなくなりました。
> Table1.Rows(0).Cells(0).Textで取得しようとすると値はNULLになっています。
> conTextBox(x).Textでは取得できますが、これだとテーブル上のどこにデータがあるのか
> 分かりづらいので、テーブル上の行と列を指して取得したいのですが、
> どうすれば良いのか詳しい方がいらしたら教えてください。
> 下記がそのコーディングです。
> お願いします。
カゴです。
はやぞうさん、またもお助け頂き誠にありがとうございます。
早速試してみます。
テスト後、結果をご報告させていただきます。
とりあえず、感謝の返事メールまで。
カゴです。
はやぞうさん、テストはうまくいきました。
実際にはテーブルにセットした内容を、次画面(ポストバック後)にて取得し
各セルの内容について編集するのですが、
教えて頂いた技術を利用して開発を進めさせていただきます。
ホントに重ね重ねありがとうございます。
素晴らしい技術提供をして頂き感謝いたします。

DOBON.NET | プログラミング道 | プログラミング掲示板