3

次のように、テキストボックスコントロールにカスタムバリデーターをアタッチしています

<td align="center" width="10px">
  <asp:CustomValidator ID="validateDateText" ControlToValidate="dateTextBox" 
       runat="server" OnServerValidate="ValidateDate" 
       ClientValidationFunction="Validate_Date" EnableClientScript="true" 
       Width="10px" CssClass="errortext" Text="*" Font-Size="Medium" Font-Bold="true" />
</td>
<td align="center" width="80px">
  <asp:Textbox ID="dateTextBox" MaxLength="100" runat="server"  
       CssClass="dateselectortextbox" style="margin-right: 3px;" />
</td>

causevalidation = "true"のペー​​ジのボタンをクリックすると、クライアントスクリプトが起動し、検証の概要にエラーメッセージが反映され、バリデーターに*が表示されます。

ただし、テキストボックスの外をクリックすると、バリデーターによって*のみが表示されます。検証の概要は更新されません。

サーバー側のコードが呼び出されないため、クライアント側の検証が機能しています。onblurイベントでvalidationsummaryが更新されない理由を解明しようとしているだけです。

何か案は?

編集:

ErrorMessageは、バリデーターのコードビハインドで設定されます

EnableClientScriptをvalidationsummaryに追加しました

ValidationGroupをvalidationsummary、customvalidator、textbox、buttonに追加しましたが、ボタンクリックの検証サマリーは更新されますが、textboxonblurイベントは更新されません。

4

3 に答える 3

4

検証の概要に表示するメッセージには、間違いなくerrormessage="xyz"を使用する必要があります。検証するコントロールのグループが複数ない限り、検証グループは重要ではありません。

これは、 onblurの後に更新する検証サマリーを取得するのに役立つ可能性のある別の投稿へのリンクです。

于 2009-08-27T17:51:21.230 に答える
1

CustomValidator内でErrorMessage="いくつかの有益なエラーメッセージ"を使用することをお勧めします。また、CustomValidator、ValidationSummaryコントロール、およびポストバックを引き起こしているコントロールに対してValidationGroup="SomeGroupName"を設定する必要があります。

于 2009-08-27T17:22:20.350 に答える
0

とを同じ値dateTextBox.ValidationGroupに設定する必要があります。validateDateText.ValidationGroupyourValidationSummary.ValidationGroup

http://msmvps.com/blogs/brianmadsen/pages/ASP.Net-2.0-_2D00_-How-to-use-the-new-validation-features_2C00_-part-1.aspxを参照してください。

于 2009-08-27T17:01:34.700 に答える