문제

데이터 수집 마법사에 문제가 있습니다.

내 마법사에는 여러 클라이언트 측 유효성 검사기 (Regex, 필수 필드 등)가 있으며 모두 잘 작동합니다.

방금 서버 측 코드를 호출하는 컨트롤 중 하나에 CustomValidator를 추가했습니다. (불행히도 서버 측이어야합니다).

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

따라서 검증에 대해 거짓을 반환한다는 사실은 나에게 거의 쓸모가 없다 ...

다음과 같이 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 팝업을 추가했습니다. 기본적으로 "나는 유효하지 않습니다"라고 말하고 화면이 켜진 직후에 나타납니다.

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

도움이 되었습니까?

해결책

나는 이것을 분류했다.

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;
        }
    }

내 서버 측 유효성 검사기는 이제 원래 마법사 코드에 의해 한 번 두 번 호출되고 있으며,이 방법으로 두 번째 시간으로 마법사가 다음 단계로 넘어가는 것을 중지합니다 ....

그것은 세상에서 최고의 수정이 아니지만 적어도 작동합니다! 실제로 무슨 일이 일어나고 있는지 알아 내면이 게시물을 업데이트하겠습니다.

다른 팁

Init 이벤트에서 모든 Postback에 컨트롤을 추가해야합니다.

편집하다

또한 사용자 정의 유효성 검사기의 클라이언트 측 유효성 검사를 수동으로 연결해야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top