2013-06-28 23 views
5

私は不幸にも私のために働いていたものは見つけられませんでした。基本的には、私はasp:customvalidatorを持っています。これは、他のバリデーターでバリデーショングループに追加しようとしているので、すべてのエラーメッセージが同じアラートに表示されます。ここでのCustomValidatorカスタムバリデーターが起動しない

<asp:TextBox runat="server" ID="txtVideo1Url" Columns="20" Width="98%" /> 
<asp:CustomValidator runat="server" ID="valURL1" ControlToValidate="txtVideo1Url" OnServerValidate="txtVideo1Url_ServerValidate" Display="None" ValidationGroup="submission" /> 

であり、ここでイベントがすべてで焼成されていないイベント

protected void txtVideo1Url_ServerValidate(object sender, ServerValidateEventArgs e) 
    { 
     e.IsValid = false; 
     valURL1.Text = "FAIL!"; 
    } 

であり、私は理由はわかりません。イベントが発生したら、実際のロジックを入れてもらうことができます。

更新:私は今イベントが発生することに気付きましたが、validationsummaryはすべてのエラーをメッセージボックスに表示するように設定されていますこのエラーはメッセージボックスに追加されていません。

+2

あなたの 'UPDATE'に対する答えは、' CustomValidator'は厳密にはサーバー側の検証メカニズムであり、 'MessageBox'機能はクライアント側のメカニズムであるため、' CustomValidator'メッセージを'MessageBox'です。 –

答えて

6

あなたはこのように、trueTextBoxCausesValidationプロパティを設定する必要があります。

<asp:TextBox runat="server" ID="txtVideo1Url" Columns="20" Width="98%" CausesValidation="true" /> 
+0

応答に感謝します。私はCausesValidation = "true"をテキストボックスに追加しましたが、まだ起動していません –

+2

もう一つの答え(Ilkka)と同様、 'ValidationGroup'属性が問題で、削除するか、ポストバックを行うコントロールに追加します。 –

1

あなたがポストバックを起動しますASP.NETコントロールにValidationGroup =「提出」を追加する必要があります。

17

はあなたのASPXの他のバリデータを検証していない場合

ValidateEmptyText="True" 
+0

これは、明示的にテキストボックスにCausesValidationを設定することなく、私のために働いた。 – Andez

+0

ありがとうございます。検証するコントロールが文字列が空だったため、私のイベントは起動しませんでした – Alberto

1

CustomValidatorsが起動しません...のCustomValidatorにこのプロパティを設定することを忘れないでください。特定の検証グループでPage.Validate( "something")を強制する必要があるかもしれません。 OnTextChangedイベントを見て、ページの検証を強制することをお勧めします。

関連する問題