ページロードの検証は、SharePointフィールドコントロールを空のように処理します
-
16-10-2019 - |
質問
WSS 3.0 Webアプリのために作成している特定のカスタムリストアイテムフォームでは、ロードされたときにページを検証する必要があります。これにより、ユーザーが以前のセーブから犯す間違いがすぐに記録されます。私は現在、それを使用してそれをしています Page.Validate()
の中に OnLoad
方法。
すべてのものと TextBox
と RadioButtonList
私が住むコントロール(ページの読み込みにも)、私は単純にそれらを入力することができます。 InputFormCustomValidator
ページのコントロール。これらのコントロールでは、すべてが明確であり、正しく入力されたフィールドは無効とはマークされていません。
しかし、 UserField
と DateTimeField
コントロールでは、データが含まれているかどうかにかかわらず、ページロード検証のために空のように扱います。これは、実際のものを使用するときの両方で発生します UserField
と DateTimeField
アイテムID QueryStringに基づいてデータを自動的に取得するコントロール、および基礎となる場合 PeopleEditor
と DateTimeControl
テキストボックスのようにページの読み込みに合わせて事前格納するコントロール。
検証を必要とするポストバックがあったら、検証はそれらのフィールドの内容を適切に認識します。
これを回避するために私ができることはありますか? いいえ ページロードで無効とマークされていますか?検証を別の方法で実行する必要がありますか OnLoad
?私は個人的にフィールドを保持したいと思っています UserField
と DateTimeField
基礎となるコントロールを使用するのではなく、それは私がそれらがいつ人口になるかを定義できないことを制限します。解決策が制御前の人口を時間の早い段階に移動することである場合、私はそれに落ち着くことができますが、別の方法で修正できる場合はそうする必要がないことが望ましいままです。
解決
.validate()の前にensurechildcontrols()を呼び出してみましたか?また、コントロールを動的に作成/ロードする場合、ほとんどのカスタムコントロールはLoad()の前にイベントに参加する必要があるため、通常、CreateChildControls()ではなくCreateChildControls()イベントで行われます。
他のヒント
Page.validate()を移動してください。