2010-01-10 5 views
4

CreateUserWizard 컨트롤이 있고 서버 쪽 유효성 검사를 수행하고 있습니다. 코드 숨김에서 CUW의 오류 메시지를 표시하는 방법이 있습니까? 현재 사용자가 중복 된 이름을 입력하면 DuplicateUserNameErrorMessage 컨트롤의 컨트롤이 표시됩니다. 그러나 사용자가 자바 스크립트를 사용하지 않거나 유효하지 않은 문자가있는 사용자 정의 POST 헤더를 보내는 경우 오류를 잡기 위해 서버 측 유효성 검사에 의존합니다. 그러면 사용자 정의 레이블을 만들고 가짜로 만드는 대신 컨트롤의 ErrorMessage 레이블에 같은 오류 메시지를 표시 할 수 있습니까?CreateUserWizard의 오류 메시지 레이블 표시

편집 : 서버 측 유효성 검사는 다양한 측면을 테스트합니다. 중복 사용자는 ErrorMessage 레이블이 컨트롤에 의해 호출 될 때의 예일뿐입니다.

감사

답변

4

업데이트 :

여기

이 작동 뭔가이지만, 개인 반사가 필요합니다 기본적으로

void CreateUserWizard1_CreatingUser(object sender, LoginCancelEventArgs e) { 
    typeof(CreateUserWizard).GetField(
     "_unknownErrorMessage", 
     System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance) 
     .SetValue(sender, "My error message"); 
    e.Cancel = true; 
} 

, 당신은 당신이 원하는 오류 메시지에이 필드를 설정하고 CreateUserWizard 픽 그것. 비공개 반성이기 때문에 '지원되는'기술은 아니지만 적어도 다른 방법이 없다면 고려해 볼 수있는 옵션입니다.


나는이 일을하기 위해 특별한 조치를 취해야한다고 생각하지 않습니다. 일반적으로 클라이언트 측 유효성 검사를 지원하는 모든 것은 일치하는 서버 측 유효성 검사 논리를 갖습니다. 사실, 중복 이름과 같은 무언가를 위해서만 서버 측 유효성 검사가 있기 때문에 자바 스크립트를 끄면 시나리오에 영향을 미치지 않는다고 생각합니다.

자바 스크립트를 사용 중지하고 중복 된 이름을 올리면 정확히 무엇이 표시됩니까? 간단한 페이지로이 문제를 재현 할 수 있습니까? 아니면 영향을 미칠 수있는 요소가 있습니까?

일반 CUW 및 비활성화 된 자바 스크립트로 시도하고 중복 사용자 오류가 올바르게 표시되었습니다.

+0

미안하지만 좀 더 분명히해야한다고 생각합니다. Duplicate 사용자는 표시되는 ErrorMessage 레이블의 예일뿐입니다. 서버 측 유효성 검사에서 유효하지 않은 문자, 의심되는 스크립트 등을 검사합니다. 이러한 플래그가 표시되면 동일한 ErrorMessage 레이블을 사용하여 메시지를 표시하고 싶습니다. CUW에서 ErrorMessage 레이블에 액세스 할 수 있었지만 코드 숨김에서 강제로 표시 할 수 없습니다. – keyboardP

+0

어떻게 서버 측 유효성 검사를 연결하고 있습니까? 사용자 정의 유효성 검사기 컨트롤을 사용하고 있습니까? –

+0

나는 CUW의 * CreatingUser * 이벤트를 잡아 내고 제출되는 각 텍스트 상자를 확인하고있다. 각 텍스트 상자의 텍스트는 의심스러운 항목이 있으면 false를 반환하는 사용자 지정 유효성 검사 함수에 저장됩니다. 이 함수가 false를 반환하면 CUW의 ErrorMessage 레이블에서 사용자 지정 메시지를 표시하고 CreateUser 이벤트를 취소합니다. – keyboardP