2011-04-13 1 views
1

이상하게 = 100 I는 입력 된 데이터에 정의 된 컬럼의 길이를 초과하지 않을 것을 보장 할ASP.NET RangeValidator되는 행동 이것은 타입 속성을 문자열로 설정하고 최소값 = 0, 최대 값의가요

데이터베이스

이제 테스트 할 때 한 글자 또는 두 글자를 입력해도 항상 오류 메시지가 표시됩니다!

+0

일반 표현식을 사용하거나 사용자가 제한을 초과하지 못하도록 컨트롤의 MaxLength 속성을 사용하십시오. –

+0

@just_name .. 두 솔루션 모두 좋았지 만 사용자에게 약간의 피드백을 제공하기 위해 정규 표현식 옵션을 사용했습니다 .. Thanks :) – lKashef

답변

3

이렇게하려면 RegularExpressionValidator를 사용해야합니다. RangeValidators는 문자열 길이가 아닙니다. ValidationExpression을 .?과 같이 설정하거나 \S? 또는 \w? 또는 원하는 경우 무언가로 좁힐 수 있습니다.

또한 MultiLine 모드가 아닌 TextBox로 작업하는 경우 (최대 문자가 1 문자 인 경우) 이유는 없습니다. 컨트롤에 MaxLength="1"을 설정하면 유효성 검사기가 필요 없습니다. 조금도.

편집 : 당신이 여러 줄로 구성된 TextBox에보다 최대 길이가 더 지정할 경우, 당신은 상술 한 바와 같이 RegularExpressionValidator를 사용하지만 100 More information on regex quantifiers is available here의 최대 길이 ValidationExpression=".{0,100}"을 설정할 수 있습니다.

한 줄짜리 TextBox가있는 경우 MaxLength 속성을 원하는 최대 값으로 설정하면 더 이상 허용되지 않습니다. 검사기가 필요하지 않습니다.

사용자가 길이를 입력 할 때 길이를 실시간으로 감지하는 작업을 원한다면 더 복잡하고 JavaScript가 필요합니다. 자바 스크립트가 해제 된 사용자는 클라이언트 측 유효성 검사를 무시할 수 있기 때문에 입력 서버 측의 유효성을 검사해야합니다.

+0

@Justin Morgan .. 좋아, 이제 RangeValidator가 문자열을 도와주지 않을 것입니다. 길이. 내가 뭘하고 싶지 stackoverflow의 코멘트 상자와 같은 것입니다 .. 그것은 주석의 최대 길이가 600 (유니 코드와 같은 다른 비 영어 문자는 여전히 하나의 문자로 카운트하고 공백은 문자로 간주됩니다)를 제한하고 이에 대한 유효성을 검사합니다 클라이언트와 서버 측 모두 .. 내가 똑같이 할 수 있다고 생각하니? – lKashef

+0

@Justin Morgan .. 편집에 관해서는 한 줄 텍스트 상자에 최대 100 자, 여러 줄 텍스트 상자에는 최대 500 자까지의 두 가지 요구 사항이 있습니다. – lKashef

+0

@lKashef - 문제 없습니다. 최신 편집보기. –

1

컨트롤의 "MaxLength"속성을 1로 설정하십시오.이 MSDN page은 속성과 사용법을 설명합니다.

RangeValidator는 길이가 아닌 입력 값의 유효성을 검사하므로 유효한 입력을 유효성 검사기로 {0, 1}로 제한하고 있습니다.

+0

에 대한 regex. 입력 문자열의 길이를 0에서 100 사이로하고 싶습니다. 어떻게 MaxLength를 1로 설정하면 도움이 될까요? – lKashef

+0

@IKashef - 필드 길이를 "최소값 = 0 및 최대 값 = 1"로 지정 했으므로 MaxLength 속성을 1로 설정했습니다. MaxLength를 100으로 설정하려면 100 – Dan

+0

으로 설정하십시오. 당신은 맞습니다. 나는 100이라는 의미의 최대 값을 잘못 입력했습니다. 어쨌든 두 답변이 모두 맞지만 저스틴 모건은 표현에 점을 추가해야하기 때문에 더 정확합니다. "{0, 1}"은 작동하지 않습니다. +1 당신의 시간과 좋은 해결책을 주셔서 감사합니다 :) – lKashef

관련 문제