문제

이것은 코드 문제만큼 코드 유지 보수 문제이지만 더 이상 CustomValidator를 확인하지 않는 WebForm이 있습니다. 1 년 전에 코드를 마지막으로 터치했을 때 효과가 있었지만 사용자가 몇 가지 변경을 요청했기 때문에 더 이상 작동하지 않습니다.

WebForm에는 기본값 " -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>
도움이 되었습니까?

해결책

몇 가지 문제가 있습니다

  • AutoPostback이 False로 설정된 경우 원인이 필요하다고 생각하지 않습니다.
  • 유효성 검사 그룹을 사용하지 않으므로 원인이 될 수 없습니다.
  • 필수 필드 볼리 디터를 사용하지 않는 이유는 무엇입니까?
  • 빈 필드에서 유효성 검사를 발사하려면 validateEmptyText 속성을 true로 설정하십시오.

다른 팁

검증중인 컨트롤이 빈 값을 갖는 경우 CustomValidator가 발사되지 않으므로 CustomValidator는 항상 필수 필드 Validator를 동반해야합니다.

일부 문제 해결 단계 :

  • 이것이 양식의 유일한 유효성 검사기입니까?
  • 페이지에서 유효성 검사가 활성화되어 있습니까?
  • 대상 제어에 대한 검증이 활성화되어 있습니까?
  • 유효성 검사기 자체가 활성화되어 있습니까?

나는 ValidationGroup을 진지하게 살펴볼 것입니다.

그룹에서 무언가가 남아 있었다면 더 이상 검증되지 않습니다. 그렇지 않으면 JavaScript 오류 (클라이언트 측의 경우)가없고 "onservalidate"인 메소드가 내부에 중단 점이 있는지 확인하십시오.

유효성 검사기는 제출 버튼과 동일한 유효성 검사기 그룹에 있습니까?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top