2014-07-07 4 views
1

이전에는 버튼 클릭 이벤트에서 RequiredFieldValidators를 사용하지 않고 유효성을 검사했습니다. 그러나 나는 그들에 대해 배우고 그것을 구현할 것이라고 생각했다.RequiredFieldValidator를 사용하는 버튼 클릭에 대한 유효성 확인

내 오랜 방법 : | 같은 예제 RequiredFieldValidators를 사용하지만

protected void btnSubmit_Click(object sender, EventArgs e) 
{ 
    if (txtSubject.Text.Equals("") || txtEmail.Text.Equals("") || txtComments.Text.Equals("")) 
    { 
     lblMessage.Text = "Please check all fields have been entered."; 
    } 
    //else if ...further validation statements e.g. check lengths 
} 

, 내가 만약 (txtSubject.Text.Equals ("") 다시 확인 할 필요가 없다는 말에 수정입니다 | txtEmail.Text.Equals ("") || txtComments.Text.Equals ("")) 다음과 같이하거나 그렇게하는 것이 좋습니다.

protected void btnSubmit_Click(object sender, EventArgs e) 
{ 
    if (Page.IsValid) 
    { 
     //...further validation statements e.g. check lengths 
     try 
     { 
      SendMail(); 
     } 
     catch (Exception) 
     { 
     } 
    } 
} 

줄을 포함해야한다면 if (Page.IsValid)의 시작 부분에 있어야합니다. 맞습니까?

HTML 코드 :

<p>Contact Form</p> 
<p> 
    Your name: 
    <asp:RequiredFieldValidator ID="rfvName" runat="server" ErrorMessage="*" 
     ControlToValidate="txtName" ValidationGroup="save" /><br /> 
    <asp:TextBox ID="txtName" runat="server" Width="250px" /><br /> 
    Your email address: 
    <asp:RequiredFieldValidator ID="rfvEmail" runat="server" ErrorMessage="*" 
     ControlToValidate="txtEmail" ValidationGroup="save" /><br /> 
    <asp:TextBox ID="txtEmail" runat="server" Width="250px" /> 
    <asp:RegularExpressionValidator runat="server" ID="rfvEmail2" 
     SetFocusOnError="true" Text="Example: [email protected]mail.com" ControlToValidate="txtEmail" 
     ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*" Display="Dynamic" 
     ValidationGroup="save" /><br /> 
    Subject: 
    <asp:RequiredFieldValidator ID="rfvSubject" runat="server" ErrorMessage="*" 
     ControlToValidate="txtSubject" ValidationGroup="save" /><br /> 
    <asp:TextBox ID="txtSubject" runat="server" Width="400px" /><br /> 
    Comments: 
    <asp:RequiredFieldValidator ID="rfvComments" runat="server" ErrorMessage="*" 
     ControlToValidate="txtComments" ValidationGroup="save" /><br /> 
    <asp:TextBox ID="txtComments" runat="server" TextMode="MultiLine" Rows="10" Width="400px" /> 
</p> 
<p> 
    <asp:Button ID="btnSubmit" runat="server" Text="Send" OnClick="btnSubmit_Click" ValidationGroup="save" /> 
</p> 
<p> 
    <asp:Label ID="lblMessage" runat="server" Visible="true" /> 
</p> 
+0

무엇이 당신의 질문입니까 – meda

+0

@meda 원래 게시물에는 두 가지 질문이 있습니다. 덕분에 – Bhav

답변

4

왜 다음을 수행 해달라고?

Page.Validate("save"); 
if (Page.IsValid) 
{ 
//Continue with your logic 
} 
else 
{ 
//Display errors, hide controls, etc. 
} 

이는 유효성 검사 그룹을 발사하고 또한, 당신은 텍스트 상자의 올바른 형식에 대한 메시지를 표시하는 유효성 검사 요약을 사용할 수 있습니다.

그리고 올바른 형식을 표시하기 위해 오류 메시지를 표시 할 수 있습니다.

+0

. 그거 좋은 생각 같아. – Bhav

+0

@Bhav 당신이 원한 것이라면 대답으로 받아 들여주십시오. – Rex

+0

왜 다음 컨트롤에서 '입력해야합니다 ...'라는 메시지가 출력되지 않습니까? "runat ="server "/> ... 다음 필드를 입력해야합니다. ErrorMessage 및 Text 속성을 적절하게 변경했습니다. Bhav

관련 문제