これはコードの問題と同じくらいコードのメンテナンスの問題ですが、CustomValidator をチェックしなくなった WebForm があります。1年以上前に最後にコードに触れたときは機能しましたが、ユーザーがいくつかの変更を要求したため、機能しなくなりました...
WebForm には、値として String.Empty を持つデフォルトの「 - All -」項目を持つデータ バインド ドロップダウンが含まれています。ユーザーが送信ボタンをクリックすると、バリデーターはドロップダウンの値が String.Empty でないことを確認する必要があります。クライアント検証コードとサーバー検証コードにブレーク ポイントを設定しましたが、どちらも起動しません。
どこから探し始めますか?通常の容疑者は何ですか?もちろん、自分の作業コピーをソース管理にあるものと比較しましたが、疑わしいものは何もありません。
念のため、私のコードは次のとおりです。
<asp:DropDownList ID="_AssessmentDropDown" runat="server" DataSourceID="_AssessmentsData" CausesValidation="true" AutoPostBack="false"
DataTextField="AssessmentName" DataValueField="AssessmentName" OnDataBound="_HandleAssessmentsBound">
</asp:DropDownList>
<asp:CustomValidator ID="_AssessmentValidator" runat="server" ClientValidationFunction="_HandleValidateAssessment_Client"
ControlToValidate="_AssessmentDropDown" ErrorMessage="* You must select an Assessment."
OnServerValidate="_HandleValidateAssessment" />
<asp:ObjectDataSource ID="_AssessmentsData" runat="server"
OldValuesParameterFormatString="original_{0}" SelectMethod="GetData"
TypeName="DataTableAdapters.GET_GRADE_ASSESSMENTSTableAdapter">
<SelectParameters>
<asp:ControlParameter Name="GRADECODE" ControlID="_GradeCodeDropDown" PropertyName="SelectedValue" />
</SelectParameters>
</asp:ObjectDataSource>