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でコントロールを見つけることができます)。
紛失しているものがありますか?
はい、間違いなく追加されています。ページの出力に行とセルが表示されます。セルのIDもHTMLに出力されます。 –
私は、FindControlを呼んだ時点でその行がテーブルに追加されていることを意味していますか? tblAllocations.FindControlがそのセルを見つける前にtblAllocations.Rows.Add(tbr)が発生している必要があります。 – AnthonyWJones
これは間違いなく正しく追加されています。私は問題を絞り込んだと思う。私は、コントロールを作成する前にDataBindメソッドを呼び出すDropDownListを持っています。 DataBindへの呼び出しを削除すると、すべて正常に動作します。本当に変だ。 –