ページロードの検証は、SharePointフィールドコントロールを空のように処理します

sharepoint.stackexchange https://sharepoint.stackexchange.com/questions/13378

  •  16-10-2019
  •  | 
  •  

質問

WSS 3.0 Webアプリのために作成している特定のカスタムリストアイテムフォームでは、ロードされたときにページを検証する必要があります。これにより、ユーザーが以前のセーブから犯す間違いがすぐに記録されます。私は現在、それを使用してそれをしています Page.Validate() の中に OnLoad 方法。

すべてのものと TextBoxRadioButtonList 私が住むコントロール(ページの読み込みにも)、私は単純にそれらを入力することができます。 InputFormCustomValidator ページのコントロール。これらのコントロールでは、すべてが明確であり、正しく入力されたフィールドは無効とはマークされていません。

しかし、 UserFieldDateTimeField コントロールでは、データが含まれているかどうかにかかわらず、ページロード検証のために空のように扱います。これは、実際のものを使用するときの両方で発生します UserFieldDateTimeField アイテムID QueryStringに基づいてデータを自動的に取得するコントロール、および基礎となる場合 PeopleEditorDateTimeControl テキストボックスのようにページの読み込みに合わせて事前格納するコントロール。

検証を必要とするポストバックがあったら、検証はそれらのフィールドの内容を適切に認識します。

これを回避するために私ができることはありますか? いいえ ページロードで無効とマークされていますか?検証を別の方法で実行する必要がありますか OnLoad?私は個人的にフィールドを保持したいと思っています UserFieldDateTimeField 基礎となるコントロールを使用するのではなく、それは私がそれらがいつ人口になるかを定義できないことを制限します。解決策が制御前の人口を時間の早い段階に移動することである場合、私はそれに落ち着くことができますが、別の方法で修正できる場合はそうする必要がないことが望ましいままです。

役に立ちましたか?

解決

.validate()の前にensurechildcontrols()を呼び出してみましたか?また、コントロールを動的に作成/ロードする場合、ほとんどのカスタムコントロールはLoad()の前にイベントに参加する必要があるため、通常、CreateChildControls()ではなくCreateChildControls()イベントで行われます。

他のヒント

Page.validate()を移動してください。

ライセンス: CC-BY-SA帰属
所属していません sharepoint.stackexchange
scroll top