2009-04-21 44 views
1

ページのテーブルコントロールの行とセルを動的に生成するASP.NETコードがあります。動的に生成されたコントロールでFindControlを使用する

私は具体的に各セルのIDを設定しましたが、実際にFindControlを見つけるのに問題があります。ここで

は、私は、細胞を作成するために使用するコードです:

tbc = New TableCell 
tbr.Cells.Add(tbc) 
tbc.ID = String.Format("tc_{0}-{1}-{2}", curStartDate.Day, curStartDate.Month, curStartDate.Year) 

ちょうどその下に、私は以下でコントロールを探してみてください:

Dim ctlName As String = String.Format("tc_{0}-{1}-{2}", curStartDate.Day, curStartDate.Month, curStartDate.Year) 
Dim ctl As Control = tblAllocations.FindControl(ctlName) 

私はそのラインを交換しようとしていますセルをTableRowのCellsコレクションに追加する行でIDを宣言し、それが動作するようにします。しかし、私のアプリケーションでは、上記のような順序でステートメントがあり、正常に動作します(FindControlは正しいIDでコントロールを見つけることができます)。

紛失しているものがありますか?

答えて

1

「すぐ下に」と言うと、tblをtblAllocations.Rowsに追加しましたか?そうでなければ、それは見つからない。

+0

はい、間違いなく追加されています。ページの出力に行とセルが表示されます。セルのIDもHTMLに出力されます。 –

+0

私は、FindControlを呼んだ時点でその行がテーブルに追加されていることを意味していますか? tblAllocations.FindControlがそのセルを見つける前にtblAllocations.Rows.Add(tbr)が発生している必要があります。 – AnthonyWJones

+0

これは間違いなく正しく追加されています。私は問題を絞り込んだと思う。私は、コントロールを作成する前にDataBindメソッドを呼び出すDropDownListを持っています。 DataBindへの呼び出しを削除すると、すべて正常に動作します。本当に変だ。 –

関連する問題