다음을 통해 공유


유효성 검사 그룹 지정

업데이트: 2007년 11월

유효성 검사 그룹을 사용하면 페이지의 유효성 검사 컨트롤을 집합으로 구성할 수 있습니다. 각 유효성 검사 그룹은 페이지의 다른 유효성 검사 그룹과 별도로 유효성 검사를 수행할 수 있습니다.

그룹화할 모든 컨트롤에 대해 ValidationGroup 속성을 같은 이름(문자열)으로 설정하여 유효성 검사 그룹을 만듭니다. 유효성 검사 그룹에 할당할 수 있는 이름에는 제한이 없지만 그룹의 모든 멤버에 같은 이름을 사용해야 합니다.

다시 게시하는 동안 현재 유효성 검사 그룹에 포함된 유효성 검사 컨트롤만 기준으로 하여 Page 클래스의 IsValid 속성이 설정됩니다. 현재 유효성 검사 그룹은 유효성 검사를 발생시킨 컨트롤에 의해 결정됩니다. 예를 들어 LoginForm이라는 유효성 검사 그룹이 있는 Button 컨트롤을 클릭하는 경우 ValidationGroup 속성이 LoginForm으로 설정된 모든 유효성 검사 컨트롤이 올바르면 IsValid 속성이 true를 반환합니다. DropDownList 컨트롤 같은 다른 컨트롤도 컨트롤의 CausesValidation 속성이 true로 설정되고 AutoPostBack 속성이 true로 설정되면 유효성 검사를 트리거할 수 있습니다.

프로그래밍 방식으로 유효성을 검사하려면 validationGroup 매개 변수를 사용하는 Validate 메서드 오버로드를 호출하여 해당 유효성 검사 그룹에 대해서만 유효성 검사를 수행합니다. Validate 메서드를 호출하는 경우 IsValid 속성은 지금까지 유효성이 검사된 모든 그룹의 유효성을 반영합니다. 여기에는 다시 게시 결과로 유효성이 검사된 그룹과 프로그래밍 방식으로 유효성이 검사된 그룹이 모두 포함될 수 있습니다. 두 그룹의 컨트롤 중에서 잘못된 컨트롤이 있으면 IsValid 속성은 false를 반환합니다.

다음 코드 예제에서는 Button 컨트롤이 서버에 다시 게시되는 경우 ValidationGroup 속성을 사용하여 유효성을 검사할 컨트롤을 지정하는 방법을 보여 줍니다. 이 페이지에는 사용자가 입력하는 데이터를 캡처할 텍스트 상자 세 개와 사용자가 텍스트 상자를 빈 상태로 두지 않도록 확인하는 데 사용할 RequiredFieldValidator 컨트롤 세 개가 있습니다. 처음 두 개의 텍스트 상자에 대한 RequiredFieldValidator 컨트롤은 PersonalInfoGroup 유효성 검사 그룹에 포함되고 세 번째 텍스트 상자에 대한 RequiredFieldValidator 컨트롤은 LocationInfoGroup 유효성 검사 그룹에 포함됩니다. Button1을 클릭하면 PersonalInfoGroup 유효성 검사 그룹에 포함된 컨트롤의 유효성만 검사됩니다. Button2를 클릭하면 LocationInfoGroup 유효성 검사 그룹에 포함된 컨트롤의 유효성만 검사됩니다.

<%@ page language="VB" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head >
  <title>Button.ValidationGroup Example</title>
</head>
<body>
  <form id="form1" >

    <h3>Button.ValidationGroup Example</h3>

    <asp:label id="NameLabel" 
      text="Enter your name:"
      runat="Server"
      AssociatedControlID="NameTextBox">
    </asp:label>

    &nbsp

    <asp:textbox id="NameTextBox" 
      runat="Server">
    </asp:textbox>

    &nbsp

    <asp:requiredfieldvalidator id="RequiredFieldValidator1"
      controltovalidate="NameTextBox"
      validationgroup="PersonalInfoGroup"
      errormessage="Enter your name."
      runat="Server">
    </asp:requiredfieldvalidator>

    <br /><br />

    <asp:label id="AgeLabel" 
      text="Enter your age:"
      runat="Server"
      AssociatedControlID="AgeTextbox">
    </asp:label>

    &nbsp

    <asp:textbox id="AgeTextbox" 
      runat="Server">
    </asp:textbox>

    &nbsp

    <asp:requiredfieldvalidator id="RequiredFieldValidator2"
      controltovalidate="AgeTextBox"
      validationgroup="PersonalInfoGroup"
      errormessage="Enter your age."
      runat="Server">
    </asp:requiredfieldvalidator>

    <br /><br />

    <!--When Button1 is clicked, only validation
    controls that are a part of PersonalInfoGroup
    are validated.-->
    <asp:button id="Button1" 
      text="Validate" 
      causesvalidation="true"
      validationgroup="PersonalInfoGroup"
      runat="Server" />

    <br /><br />

    <asp:label id="CityLabel" 
      text="Enter your city of residence:"
      runat="Server"
       AssociatedControlID="CityTextbox">
    </asp:label>

    &nbsp

    <asp:textbox id="CityTextbox" 
      runat="Server">
    </asp:textbox>

    &nbsp

    <asp:requiredfieldvalidator id="RequiredFieldValidator3"
      controltovalidate="CityTextBox"
      validationgroup="LocationInfoGroup"
      errormessage="Enter a city name."
      runat="Server">
    </asp:requiredfieldvalidator>

    <br /><br />

    <!--When Button2 is clicked, only validation
    controls that are a part of LocationInfoGroup
    are validated.-->
    <asp:button id="Button2" 
      text="Validate" 
      causesvalidation="true"
      validationgroup="LocationInfoGroup"
      runat="Server" />

  </form>
</body>
</html>
<%@ page language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="head1" >
  <title>Button.ValidationGroup Example</title>
</head>
<body>
  <form id="form1" >

    <h3>Button.ValidationGroup Example</h3>

    <asp:label id="NameLabel" 
      text="Enter your name:"
      runat="Server"
      AssociatedControlID="NameTextBox">
    </asp:label>

    &nbsp

    <asp:textbox id="NameTextBox" 
      runat="Server">
    </asp:textbox>

    &nbsp

    <asp:requiredfieldvalidator id="RequiredFieldValidator1"
      controltovalidate="NameTextBox"
      validationgroup="PersonalInfoGroup"
      errormessage="Enter your name."
      runat="Server">
    </asp:requiredfieldvalidator>

    <br /><br />

    <asp:label id="AgeLabel" 
      text="Enter your age:"
      runat="Server" 
      AssociatedControlID="AgeTextBox">
    </asp:label>

    &nbsp

    <asp:textbox id="AgeTextBox" 
      runat="Server">
    </asp:textbox>

    &nbsp

    <asp:requiredfieldvalidator id="RequiredFieldValidator2"
      controltovalidate="AgeTextBox"
      validationgroup="PersonalInfoGroup"
      errormessage="Enter your age."
      runat="Server">
    </asp:requiredfieldvalidator>

    <br /><br />

    <!--When Button1 is clicked, only validation
    controls that are a part of PersonalInfoGroup
    are validated.-->
    <asp:button id="Button1" 
      text="Validate" 
      causesvalidation="true"
      validationgroup="PersonalInfoGroup"
      runat="Server" />

    <br /><br />

    <asp:label id="CityLabel" 
      text="Enter your city of residence:"
      runat="Server" 
      AssociatedControlID="CityTextBox">
    </asp:label>

    &nbsp

    <asp:textbox id="CityTextBox" 
      runat="Server">
    </asp:textbox>

    &nbsp

    <asp:requiredfieldvalidator id="RequiredFieldValidator3"
      controltovalidate="CityTextBox"
      validationgroup="LocationInfoGroup"
      errormessage="Enter a city name."
      runat="Server">
    </asp:requiredfieldvalidator>

    <br /><br />

    <!--When Button2 is clicked, only validation
    controls that are a part of LocationInfoGroup
    are validated.-->
    <asp:button id="Button2" 
      text="Validate" 
      causesvalidation="true"
      validationgroup="LocationInfoGroup"
      runat="Server" />

  </form>
</body>
</html>

참고 항목

기타 리소스

유효성 검사 ASP.NET 컨트롤