2010-06-01 7 views
1

내 응용 프로그램이 C#을 사용하는 ASP.NET 2.0에 있습니다. 일반 표현식 ^[0-9]*(\\,)?[0-9]?[0-9]?$이있는 정규 표현식 검사기를 사용하고 있습니다. 이제 클라이언트는 클라이언트 측에서이 유효성 검사를 원하지 않지만 버튼 클릭 즉 서버 측에서는 유효성 검사를 원하지 않습니다.ASP.NET 2.0의 서버 측 유효성 검사

EX : 나는

은 제가 서버 측에서이 정규 표현식 유효성 검사를 넣을 수있는 방법을 알려 주시기 바랍니다 txtPrice 텍스트 상자의 값을 확인해야합니다.

미리 감사드립니다.

+0

나는 이것이 클라이언트 측과 서버 측 모두라고 생각하며 클라이언트 측에서 스위치를 꺼야한다. – axk

답변

2

당신은 서버 측 이벤트에 링크 할 수있는 직접 CustomValidator를 사용할 수 있습니다

<asp:CustomValidator ID="CustomValidator1" runat="server" ErrorMessage="CustomValidator" OnServerValidate="CustomValidator1_Validate"></asp:CustomValidator> 

그런 다음 서버 측 당신이

protected void CustomValidator1_Validate (object source, ServerValidateEventArgs argss) 
{} 

바꿈하는 것을 잊지 입력을 확인할 수있는 버튼을

으로 클릭 제출
if(IsValid) {} 

모든 유효성 검사기가 준수되도록하려면

-1

ValidatorBase에 기반한 서버 측 컨트롤을 사용하는 클라이언트 측 유효성 검사는 PostBack 즉 모든 서버 측 버튼/링크 버튼 클릭에서만 발생합니다.

그래서 당신은 RegularExpressionValidator를 사용할 수 있습니다

<asp:TextBox runat="server" ID="txtPrice" /> 
<asp:RegularExpressionValidator runat="server" ControlToValidate="txtPrice" ValidationExpression="^[0-9]*(\\,)?[0-9]?[0-9]?$" ErrorMessage="Input is incorrect" /> 

은 또한 당신이 CustomValidator를 사용할 수 있습니다

<asp:TextBox runat="server" ID="txtPrice" /> 
<asp:CustomValidator runat="server" ControlToValidate="txtPrice" ErrorMessage="Input is incorrect" OnServerValidate="CustomValidator1_ServerValidate" /> 

protected void CustomValidator1_ServerValidate(object sender, ServerValidateEventArgs e) 
{ 
    // use e.Value to validate and set e.IsValid 
    // it's different depending on control to validate. 
    // for custom controls you can set it using ValidationPropertyAttribute 
} 
+0

하지만 클라이언트 측에 를 넣을 수 없기 때문에 서버 측에서 동일한 유효성 검사를 수행해야합니다. – Zerotoinfinity

+0

@Zerotoinfinite : 마크 업에 넣을 수 없습니까? 왜 안돼? (단지 흥미 롭다). 또한'CustomValidator'를 사용할 수 있습니다 - 업데이트 된 게시물을보십시오. – abatishchev

+1

당신이 대답하기 전에 @webdude가 대답했던 것과 일치하도록 답을 편집 한 것처럼 보입니다 ... – Darksider

1

시도가 검증에 EnableClientScript="false"를 추가 할 수 있습니다.

1

컨트롤은 클라이언트 쪽 유효성 검사를 사용하는지 여부에 관계없이 항상 서버 쪽에서 유효성을 검사합니다. 하지만 Page.IsValid의 값을 확인해야 포스트 백을 수락 할 수 있습니다.

이미 말했듯이 속성을 사용하여 클라이언트 측 유효성 검사를 끌 수 있습니다.

관련 문제