2009-08-04 4 views
1

데이터 수집 마법사에 문제가 있습니다..Net 마법사에서 서버 측 CustomValidator가 너무 늦게 발생했습니다.

내 마법사에는 클라이언트 측 유효성 검사기 (정규식, 필수 입력란 등)가 여러 개 있으며 잘 작동합니다.

방금 ​​서버 측 코드를 호출하는 컨트롤 중 하나에 CustomValidator를 추가했습니다. (유감스럽게도 그것은 서버 측이어야 함).

내 문제는이 코드는 마법사가 다음 단계로 넘어간 이후에 호출 된 것 같습니다 (또는 이동 중에 있음).

따라서, 검증에 대해 false를 반환한다는 사실은

다음과 같이 내가 동적으로 내 InitControl 방법의 일환으로 검사기를 추가하고 ... 나에게 조금 사용하다 :

mustUploadAnImageValidator = new CustomValidator(); 
mustUploadAnImageValidator.ControlToValidate = radioButtonList.ID; 
mustUploadAnImageValidator.ValidationGroup = "wizardGroup"; 
mustUploadAnImageValidator.ErrorMessage = "You must select a valid gallery image to use"; 
mustUploadAnImageValidator.Display = ValidatorDisplay.Static; 
mustUploadAnImageValidator.ServerValidate += 
    new ServerValidateEventHandler(mustUploadAnImageValidator_ServerValidate); 
mustUploadAnImageValidator.CssClass = "galleryValidationMessageTop"; 

이것은 다른 모든 유효성 검사기에서 작동하지만 서버 유효성 검사가 반환되기 전에 마법사가 계속 진행되는 이유를 알 수 없습니다.

기본적으로 "유효하지 않습니다"라고하는 서버 측 메서드에서 호출 한 javaScript 팝업을 추가했습니다. & 화면이 이동 한 직후 나타납니다.

모든 제안을 감사하게받습니다.

답변

2

나는이 문제를 해결할 수있었습니다.

이전에 페이지 유효성 검사를 다시 호출하는 NextButtonClick & PreviousButtonClick에 대한 이벤트 처리기를 추가했습니다.

protected virtual void DataCollectionWizard_PreviousButtonClick(object sender, WizardNavigationEventArgs e) 
    { 
     //manually validate the page, as the automatic validation seems to ignore CustomValidators 
     Page.Validate("wizardGroup"); 

     if (!Page.IsValid) 
     { 
      e.Cancel = true; 
     } 
    } 

는 내 서버 측 검증 지금 한번 후 무시 원래 마법사 코드하고 다음 단계로 이동 마법사를 중단이 방법에 의해 2 시간 회 호출되고 .. ..

세계에서 가장 좋은 해결책은 아니지만 적어도 효과가 있습니다! 실제로 무슨 일이 일어나고 있는지 알아 내면이 게시물을 업데이트 할 것입니다.

+1

"실제로 진행되고있는 것이 무엇인지 파악하면 업데이트 할 것입니다." 제발! – Beska

0

초기화 이벤트에서 모든 다시 게시에 컨트롤을 추가했는지 확인하십시오.

편집

당신은 수동으로 사용자 정의 유효성 검사기에 대한 클라이언트 측 유효성 검사를 배선해야합니다.

+0

안녕하세요, CustomValidator 컨트롤이 init 메서드의 controls 컬렉션에 추가되었습니다. 필수 필드 유효성 검사기가 동시에 추가되었으며 정상적으로 작동합니다. 나는 그것이 서버 측 대 클라이언트 측의 것이어야한다고 생각한다 ... –

+0

어떤 클라이언트 유효성 검사도 설정되어 있지 않습니까? – ScottE

+0

자신을 분명히하지 못해 죄송합니다. mustUploadAnImageValidator 컨트롤에 대해 클라이언트 유효성 검사가 설정되어 있지 않지만 radioButtonList에 requiredFieldValidator가 있습니다. 이 유효성 검사기는 정상적으로 작동하지만 CustomValidator는 정상적으로 작동하지 않습니다. requiredFieldValidator가 클라이언트 측 스크립팅을 생성한다는 것을 알고 있습니다. –