2009-10-03 7 views
0

적어도 한 번 이상 클릭했는지 확인하기 위해 ASP 버튼에 대한 유효성 검사를해야합니다.asp 버튼의 사용자 정의 검사기?

사용자 지정 검사기를 설정하고 controlToValidate를 단추로 설정 한 다음 사용자 지정 검사기가 특정 컨트롤의 유효성 만 검사 할 수 있고 단추가 그 중 하나가 아닌 것을 알았습니다.

버튼 옆에 직접 보이지 않는 텍스트 상자의 유효성을 검사하는 것에 대해 생각했지만 올바르게 생각하지 않았습니다. 이런 종류의 더미 컨트롤을 만드는 것은 괜찮습니까? 아니면 나쁜 습관입니까? 어떤 충고?

감사합니다.

+0

서버 측 또는 클라이언트 측 유효성 검증 중 하나 또는 둘 모두를 수행 하시겠습니까? 더미 컨트롤을 만드는 것이 좋은 생각이라고 생각하지 않습니다. 코드를 복잡하게 만듭니다. 왜 그냥 OnClientClick을 처리하고 isButtonClicked와 같은 플래그를 설정 한 다음 게시물을 다시 허용하기 전에이 값을 확인하십시오. – Phaedrus

답변

2

나는 더미 컨트롤을 만들지 않습니다. 나에게 너에게 물어 보겠다. 왜 이것을 확인해야 하는가? 왜 사용자는 적어도 한 번 이상 버튼을 클릭해야합니까? 어쩌면 당신은 당신이 무엇을 성취하려고하는지 모른 채 이것에 대해 틀린 통제를 사용하고 있습니다, 나는 여전히 당신이 체크 박스 나 라디오 버튼을 사용할 가능성을 보길 원합니다. 그렇게하면 사용자 정의 유효성 검사기를 사용하는 데 아무런 문제가 없습니다.

그러나 어떤 미친 이유로 단추를 사용하고 사용자가 적어도 한 번 이상 클릭하면 코드에 변수를 설정하고 단추를 클릭 할 때 값을 지정하면됩니다. 유효성 검사를하는 동안이 변수의 값을 확인하십시오 ... 변수에 여전히 기본값이있는 경우 사용자가 해당 변수를 클릭하지 않았다는 의미입니다.

//create variable 
private bool _isButtonClicked; 

//set to true when user clicks 
_isButtonClicked = true; 

//check if it has been clicked 
if(_isButtonClicked == true) 

희망이 있습니다.

2

CustomValidator 컨트롤을 사용할 때는 일반적으로 OnServerValidate 메서드를 사용하고 코드의 유효성을 검사합니다.

는 다음, btnSubmit_Click에 내가 할 A :

if (!IsValid) return; 

이 validate 메소드를 발사하고 유효성 검사가 실패 할 경우 어떤 요약 컨트롤에 다시보고 브라우저를 강제 할 것이다.

귀하의 cusValidator_OnServerValidate 메소드에서 유효성 검사 결과에 따라 args.IsValid = true | false를 확인한 다음 설정 하시겠습니까? 또한 동일한 컨트롤에 대해 동일한 유효성 검사기 내에서 여러 유효성 검사 규칙을 검사하는 경우 OnServerValidate에서 hte 오류 메시지를 설정할 수도 있습니다 (예 : null 일 수는 없지만 날짜 또는 그와 비슷한 형식의 텍스트 상자, 이 인스턴스와 함께 requiredfieldvalidator를 사용할 수도 있습니다.)

관련 문제