2016-03-23 9 views
0

Telerik AJAXコントロールを使用してポスト(クリックイベントなし)の送信ボタンを使用してサーバー作成フォームを作成しました。私のフォームは、フィールド検証エラーの後の次のポストで起こることを除いて正常に動作するバリデータを使用します。ASP.NETバリデーターの後ろにコード生成フォームがあります

コードロジックがキャッチしてエラーを返す電子メールフィールドを空にするとします。もう一度送信してください。電子メールに必要なフィールドバリデーターは、コードの前のエラーをキャッチするために働きます。ここで有効なデータを入力してサブミットし、最後の空のフィールドバリデーターエラーが再度表示されます。良いデータをもう一度送信し、更新します。

また、私自身のバリデーターエラーを生成すると、バリデーターはうまく動作します。私は必要なチェックボックスのバリデーターコードを持っています。行方不明のチェックが発生した場合、私は正しく、現在の提出で必要なフィールドを検証するために、後続の

Page.Validate(FormEntryBase.VALIDATION_GROUP); 

を引き起こし

ValidatorError.Display(Page, message); 

を呼び出します。コードがキャッチしていません

 protected void Page_Load(object sender, EventArgs e) { 


      localValidationError = theForm.CustomValidateForm(Request.Form); 
      if (localValidationError) { 
       validateErrorList = form.validateErrorList; 

       // get local valiation error put into validation summary error list 
       if (validateErrorList != null) { 
        foreach (string message in validateErrorList) { 
         ValidatorError.Display(Page, message); 
        } 
       } 
      } 
      Page.Validate(FormEntryBase.VALIDATION_GROUP); 

      if (!Page.IsValid) { 
       return; 
      } 

検証エラーが初期に捕捉されないで不正なデータをすることができますどの提出する。

私は正常に動作クリックメソッドを使用してのみPage.IsValidを使用する別のWebフォームを持っています。

非常に奇妙な動作、おそらくいくつかの並べ替えライフサイクルの問題。

+0

これはポストであり、Ajaxコールではありません。 – George

答えて

0

私はコードでclickイベントを追加して解決策を見つけました。クリックイベントを追加するには、まずフォーム作成コードにRadButtonを追加し、aspx.csでアクセスします。

RadButton button = new RadButton(); 
button.ValidateRequestMode = ValidateRequestMode.Enabled; 
button.ValidationGroup = VALIDATION_GROUP; 
button.UseSubmitBehavior = true; 
theForm.updateButton = button; 

aspx.cs Page_Loadでは、ボタンにclickメソッドを追加しました。

これらの3つのステップで、遅延の問題を検証し、すべてのフォームが非常にうまく検証されるようになりました。

関連する問題