Programming/.NET
유효성검사 컨트롤과 유효성검사 대상이 될 컨트롤에 지정하는 ValidationGroup 속성은 오류를 제어할 Group을 설정할때 사용합니다. 예를 들어 다음과 같이 사용자에게 입력을 요구하는 유효성검사를 수행하는 경우
이름 : <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox><br />
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="이름은 필수입력입니다." ControlToValidate="TextBox1"></asp:RequiredFieldValidator><br /><br />
        
<asp:Button ID="Button1" runat="server"  Text="전송" />
<asp:Button ID="Button2" runat="server" Text="취소" />
사용자는 '이름'입력을 포기하고 '취소'를 누를 수도 있으나 유효성검사는 '전송'과 '취소'를 구분하지 않고 모든 동작에 반응하게 됨으로써 특정 내용을 입력하지 않는 이상은 실제적인 '취소'동작을 수행할 없게 되는 어색한 처리를 거치게 됩니다.

이러한 문제를 해결하려면 다음과 같이 유효성검사가 수행되어야할 특정 컨트롤에만 Group을 지정하도록 하면 됩니다.
이름 : <asp:TextBox ID="TextBox1" runat="server" ValidationGroup="name_check"></asp:TextBox><br />
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="이름은 필수입력입니다." ControlToValidate="TextBox1" ValidationGroup="name_check"></asp:RequiredFieldValidator><br /><br />
       
<asp:Button ID="Button1" runat="server"  Text="전송" ValidationGroup="name_check" />
<asp:Button ID="Button2" runat="server" Text="취소" />
위 예제에서는 TextBox 와 RequiredFieldValidator 그리고 '전송'버튼에 ValidationGroup 속성을 사용하여 'name_check' 라는 같은 이름의 그룹을 지정하였습니다. '취소'버튼에는 ValidationGroup 속성을 사용하지 않았으므로 'name_check' 라는 것과는 무관한 것으로 취급되고 따라서 사용자가 '취소'버튼을 누르더라도 유효성검사는 수행되지 않으며 해당 버튼의 적절한 이벤트 처리를 가능하게 할 수 있는 것입니다.

유효성 검사결과에 대한 오류를 표시하는 ValidationSummary 에서의 ValidationGroup 속성은 같은 Group 이름으로 지정된 유효성검사 컨트롤에서의 오류메세지만 표시하도록 하는 것이며 따라서 특정 이름의 ValidationGroup 에 따라 같은 역활을 수행하는 여러개의 컨트롤이 배치되어 상호 유기적으로 동작할 수 있도록 설정할 수 있습니다.

'Programming > .NET' 카테고리의 다른 글

[ASP.NET] RangeValidator  (0) 2014.02.21
[ASP.NET] Label  (0) 2014.02.20
[ASP.NET] ValidationGroup  (0) 2014.02.19
[ASP.NET] MasterPage  (0) 2014.02.18
[ASP.NET] ImageMap  (0) 2014.02.17
[ASP.NET] Image  (0) 2014.02.13
0 0