マスターから作成されたページのコンテンツ領域にあるWebユーザーコントロール内の動的に生成されたテーブルセルに動的に作成されたテキストボックスに、RequiredFieldValidatorとRegularExpressionValidatorを追加する必要があります。
問題は、おそらくご想像のとおり、動的に作成されたテキストボックスを表示するようにControlToValidateプロパティを動的に設定しようとしていることです。
いくつかの調査の後、今コードを:
- パネルを作成します(私が聞いたように、ControlToValidateとValidatorは同じコンテナー内にある必要があります)。これは元々プレースホルダーでしたが、以下にリストされている提案を試みていました。
- テキストボックスを作成し、そのIDを設定します。
- パネルにテキストボックスを追加します。
- RequiredFieldValidatorを作成します。
ControlToValidateのIDを設定します。私が使おうとした値:
- コントロールのID
- コントロールのClientID
- サーバーがWebユーザーコントロールの子コントロールに追加する追加テキストのプレフィックスが付いたコントロールのID
- クライアントIDも同じように変更されました
- コントロールの名前(偶然に)
- サーバーがコントロールの名前に追加するテキストが前に付いたコントロールの名前
- 特注の再帰的FindControlメソッドを使用して、新しいControlオブジェクトをTextboxにキャストし、そのIDとClientIDを使用する
- コントロールのUniqueID
- 上記のようにプレフィックスで変更されたものと同じ
- パネルにバリデーターを追加します。
- パネルをテーブルセルに追加します。
言うまでもなく、バリデーターが検証することになっているコントロールを「見る」ようにバリデーターを説得することはまだできず、問題に取り組むための新しい方法から完全に外れています。
編集:さらなる探偵の仕事は、page_loadイベントが終了するまでページに問題がないという点に私を導きました。ページを構築するためのコードの実行が終了した後、サーバーに問題があるようです。私は実際にコントロールをネーミングコンテナに追加するのが早すぎるのではなく遅すぎるのではないかと考え始めています。
助言がありますか?