継承したコードがいくつかありますが、それは世界で最も優れたものではありませんが、1 つの小さな例外を除いて機能します。
このページはディレクトリ検索であり、レコード ID で識別されるコントロールがありますが、同じレコード ID を持つ複数の結果が存在する可能性がある状況が存在するため、.NET barf が作成されます。私はもともと、コントロールが既に存在する場合はページにコントロールを配置しないというチェックを実装していましたが、否定的なフィードバックが寄せられています。
私の質問は次のとおりです。同じコントロールを一度に 2 つの場所に配置する方法はありますか? 私は .NET の動作にあまり精通していませんが、必要に応じて、できるだけ多くの追加のコンテキストを提供しようとします。
編集:結果のデータテーブルをループしてコントロールを生成する更新されたコードは次のとおりです
Dim cbxSendInfo As CheckBox
Dim strCheckboxID As String = "cbxSendInfo-" & drOrganizer("ID") & "-" & i
Debug.text = Debug.text & " Loading Checkbox (" & strCheckboxID & ")...<br />"
cbxSendInfo = New CheckBox
cbxSendInfo.ID = strCheckboxID
cbxSendInfo.enableViewState = true
コントロールを見つけて連絡先リストを作成するコードは次のとおりです。
Dim strCheckboxID As String = "cbxSendInfo-" & drOrganizer("ID") & "-" & i
Dim cbxSendInfo As CheckBox = Me.tblResults.FindControl(strCheckboxID)
If cbxSendInfo.Checked Then
alOrganizers.Add(drOrganizer("ID"))
End If
drOrganizer("ID") はレコード ID、i は結果レコード番号です。
少なくとも私のバックグラウンドから、これがこれを行うのにひどい方法であることはわかっていますが、私が言ったように、これはバラバラにハッキングされた継承されたコードです。