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

複数のコントロールが見つかりました

  • 題名: 複数のコントロールが見つかりました
  • 著者: カゴ
  • 日時: 2004/03/09 17:15:52
  • ID: 2941
  • この記事の返信元:
    • (なし)
  • この記事への返信:
    • (なし)
  • ツリーを表示
分類:[ASP.NET]

カゴです。
またもや動的に作ったテーブルの扱いに悩んでいます。
どなたかご存知でしたら、ご教授願います。

Webフォームにて
Aドロップダウンリストで作成したいテーブルの行数を指定し、
Aボタンをクリックする事によりAテーブルを作成し、また、
Bドロップダウンリストで作成したいテーブルの行数を指定し、
Bボタンをクリックする事によりBテーブルを作成したいと考えています。
(列数は固定)
各テーブルは
Dim i,j As Integer
Dim intCells As Integer = 2 ' セルの数
Dim intRows As Integer = 10 ' 行の数
Dim conTextBox(20) As System.Web.UI.WebControls.TextBox ' TextBoxの数
'各セルはテキストボックスにて構成されています。
For j = 0 To intRows - 1
Dim tbRow As New TableRow
For i = 0 To intCells - 1
' セルの作成
Dim tbCell As New TableCell

' コントロール(TextBox)の作成
conTextBox(j) = New System.Web.UI.WebControls.TextBox

Me.FindControl("Form1").Controls.Add(conTextBox(j))

tbCell.Controls.Add(conTextBox(j))
tbRow.Cells.Add(tbCell)
Next
Table1.Rows.Add(tbRow)
というように動的に作成します。

Aテーブル作成後にBテーブルを作成してもAテーブルは画面上に
そのまま残っていて欲しいのですが、最初にAテーブルを作成した後に、
Bボタンをクリックすると

「同じ ID '_ctl0' を持つ複数のコントロールが見つかりました。
FindControl を使うには、コントロールに一意の ID を指定する必要があります。 」

というエラーになってしまいます。
Bボタン以外のポストバック機能を持ったボタンを
クリックしても同じ現象になります。

動的にテーブル内のセルを作るときにそのセルのIDが自動的に作成され、
Aテーブルを作成するときに使ったIDとBテーブルを作成しようとした時のIDが
重なってしまい上記のエラーになるように思われますが、
このような事象についての回避策、調査方法をご存知でしたら是非教えて下さい。

よろしくお願いします。

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