こんにちは私はカスタムフォームフィールドバリデーターに取り組んでいます。カスタムバリデーターは次のページに進むことを許可しないことで機能しているようですが、検証の概要は更新されず、アスタリスクとラベルも表示されません。目に見えるようにしました。同じフィールドにRequiredFieldValidatorのような他のバリデーターもあります。TextとIsValidと同様に、私のValidationGroupが設定されます。いくつかの回避策が示唆するように、私はjavascriptでダミーのクライアント側検証メソッドを作成して設定しました。
これがasp.netの検証サマリーコードです
<asp:ValidationSummary ID="ValidatorSummary" runat="server" ValidationGroup="Step2" />
これがカスタムバリデーターと必須フィールドです
<asp:CustomValidator ID="AddressVerification" runat="server" ErrorMessage="Please enter a valid address." Display="Dynamic" ValidationGroup="Step2" OnServerValidate="AddressVerification_ServerValidate" ClientValidationFunction="CustomValidatorDummy" Text="*" Enabled="true" EnableClientScript="true"></asp:CustomValidator>
<asp:RequiredFieldValidator ID="RFValidatorHomeAddress" runat="server" ErrorMessage="Please enter home address." Text="*" Display="Dynamic" ValidationGroup="Step2" ControlToValidate="txtHomeAddress"></asp:RequiredFieldValidator>
これがコードビハインドのカスタム検証メソッドです
protected void AddressVerification_ServerValidate(object sender, ServerValidateEventArgs e)
{
//lets just say it doesn't validate and sets the IsValid to false
lblUspsValidatorResHomeCity.Visible = true;
lblUspsValidatorResHomeState.Visible = true;
lblUspsValidatorResHomeZip.Visible = true;
e.IsValid = false;
}
アドバイスしてください、ありがとう。
編集:答えた-bitxwiseが述べたように。検証の概要も更新パネル内に配置する必要があります。ありがとう!
そのようです:
<asp:UpdatePanel ID="UpdatePanelValidationSummaryHome" ChildrenAsTriggers="false" UpdateMode="Conditional"
runat="server">
<ContentTemplate>
<asp:ValidationSummary ID="AddressHomeValidationSummary" runat="server" ValidationGroup="AddressHomeValidationGroup"
CssClass="errors" />
</ContentTemplate>
次に、更新を呼び出します。
UpdatePanelValidationSummaryHome.Update();