다음을 통해 공유


ASP.NET 서버 컨트롤에서 특정 값에 대한 유효성 검사

업데이트: 2007년 11월

ASP.NET 유효성 검사 컨트롤을 사용하면 논리 연산자를 사용하여 특정 값에 대한 사용자 입력의 유효성을 검사할 수 있습니다. 예를 들어 사용자의 입력이 1950년 1월 1일 후의 날짜이거나 0 이상의 정수 값이 되도록 지정할 수 있습니다. 또는 사용자의 입력을 다른 컨트롤의 값과 비교하도록 지정할 수도 있습니다.

보안 정보:

ASP.NET 웹 페이지의 사용자 입력에는 잠재적으로 악의적인 클라이언트 스크립트가 포함될 수 있습니다. 자세한 내용은 스크립트 악용 개요를 참조하십시오.

특정 값에 대해 유효성을 검사하려면

  1. CompareValidator 컨트롤을 페이지에 추가하고 다음 속성을 설정합니다.

    속성

    설명

    ControlToValidate

    사용자가 값을 제공해야 하는 컨트롤의 ID입니다.

    ErrorMessage, Text, Display

    사용자가 컨트롤을 건너뛰었을 때 나타낼 오류 텍스트와 위치를 지정하는 속성입니다. 자세한 내용은 방법: ASP.NET 서버 컨트롤의 유효성 검사 오류 메시지 표시 제어를 참조하십시오.

  2. 다음 속성을 설정하여 비교할 값을 설정합니다.

    속성

    설명

    ValueToCompare

    - 또는 -

    ControlToCompare

    문자열로 입력된 식입니다. 상수 값과 비교하려면 ValueToCompare 속성을 설정합니다. 다른 컨트롤의 값과 비교하려면 ControlToCompare 속성을 해당 컨트롤의 ID로 설정합니다. CompareValidator 컨트롤은 사용자가 입력한 내용을 다른 컨트롤의 ValidationPropertyAttribute에서 지정한 속성과 비교합니다. ValueToCompareControlToCompare 속성을 모두 설정할 경우 ControlToCompare가 우선합니다.

    Type

    비교할 두 값의 데이터 형식입니다. 형식은 ValidationDataType 열거형를 사용하여 지정하며 이 열거형를 통해 형식 이름 String, Integer, Double, Date 또는 Currency를 사용할 수 있습니다. 비교를 수행하기 전에 값이 이 형식으로 변환됩니다. 자세한 내용은 방법: ASP.NET 서버 컨트롤에서 데이터 형식에 대한 유효성 검사를 참조하십시오.

    Operator

    사용할 비교입니다. ValidationCompareOperator 열거형에 정의된 다음 값 중 하나를 사용하여 연산자를 지정합니다.

    참고:

    다른 컨트롤에 대해 유효성 검사를 수행하면 다른 컨트롤의 잘못된 값은 무시되고 유효성 검사는 통과합니다. 자세한 내용은 ASP.NET 서버 컨트롤의 특별한 경우 유효성 검사 결과를 참조하십시오.

  3. 코드에 유효성을 검사하는 테스트를 추가합니다. 자세한 내용은 방법: 프로그래밍 방식으로 ASP.NET 서버 컨트롤 유효성 검사를 참조하십시오.

    다음 코드 예제에서는 CompareValidator 컨트롤을 사용하여 유효성을 검사하는 TextBox 컨트롤을 보여 줍니다.

    <table>
      <tr>
        <td>
          <asp:Textbox id="txtAge" ></asp:Textbox>
        </td>
        <td>
          <asp:CompareValidator id="CompareFieldValidator1" 
            ForeColor="Red"
            ControlToValidate="txtAge"
            ValueToCompare="0"
            Type="Integer"
            Operator="GreaterThanEqual"
            ErrorMessage="Please enter a whole number zero or greater.">
          </asp:CompareValidator >
        </td>
      </tr>
    </table>
    
    <table>
      <tr>
        <td>
          <asp:Textbox id="txtAge" ></asp:Textbox>
        </td>
        <td>
          <asp:CompareValidator id="CompareFieldValidator1" 
            ForeColor="Red"
            ControlToValidate="txtAge"
            ValueToCompare="0"
            Type="Integer"
            Operator="GreaterThanEqual"
            ErrorMessage="Please enter a whole number zero or greater.">
          </asp:CompareValidator >
        </td>
      </tr>
    </table>
    

    다음 코드 예제에서는 사용자가 입력한 내용을 다른 컨트롤의 값과 비교하는 CompareValidator를 보여 줍니다. 이 페이지에서는 사용자가 호텔 예약을 할 수 있습니다. 유효성 검사기는 사용자가 출발 날짜를 도착 날짜보다 이전 날짜를 입력하지 않도록 확인합니다. 실제 응용 프로그램에서는 출발 날짜도 필수 필드이며 마찬가지로 유효성이 검사됩니다.

    <table>
      <tr>
        <td>
          Arrive<asp:Textbox id="txtArrivalDate" ></asp:Textbox>
          Depart<asp:Textbox id="txtDepartureDate" ></asp:Textbox>
        </td>
        <td>
          <asp:CompareValidator id="CompareValidator1" 
            ForeColor="Red"
            ControlToValidate="txtDepartureDate"
            ControlToCompare="txtArrivalDate"
            Type="Date"       
            Operator="GreaterThanEqual"      
            ErrorMessage="Departure date cannot be earlier than arrival date.">
          </asp:CompareValidator >
        </td>
      </tr>
    </table>
    
    <table>
      <tr>
        <td>
          Arrive<asp:Textbox id="txtArrivalDate" ></asp:Textbox>
          Depart<asp:Textbox id="txtDepartureDate" ></asp:Textbox>
        </td>
        <td>
          <asp:CompareValidator id="CompareValidator1" 
            ForeColor="Red"
            ControlToValidate="txtDepartureDate"
            ControlToCompare="txtArrivalDate"
            Type="Date"       
            Operator="GreaterThanEqual"      
            ErrorMessage="Departure date cannot be earlier than arrival date.">
          </asp:CompareValidator >
        </td>
      </tr>
    </table>
    

참고 항목

개념

ASP.NET 서버 컨트롤의 유효성 검사 형식

기타 리소스

유효성 검사 ASP.NET 컨트롤