2009-05-01 2 views
1

코드 및 마크 업에서 설정을 시도했지만 다음 버튼을 클릭하면 페이지의 유효성을 검사하고이를 미리 지정하려고합니다. 유효성 검사가 발생해야하는 시점과 발생하지 않을 시점을 제어합니다. 어떤 제안이나 코드 샘플도 감사 할 것입니다ASP.NET의 마법사 컨트롤 - NextButton Causesvalidation 속성을 false로 설정하는 방법

+1

가 작동 했습니까? 추가 지원이 필요한 경우 Lemme이 알 수 있습니다! ;-) – Cerebrus

답변

5

가장 쉬운 방법은 유효성 검사를 건너 뛰려는 WizardStep에서 모든 유효성 검사기 컨트롤을 제거하는 것입니다.

그러나 고급 기능이 필요한 경우 StepNavigationTemplate에서 다음/이전 버튼의 CausesValidation 속성을 수동으로 설정해야합니다. ASP.NET Wizard 컨트롤은 NavigationTemplates의 컨트롤에 직접 액세스 할 수있는 속성을 노출하지 않으며 NavigationTemplate에 액세스하기위한 속성을 노출하지 않습니다. 따라서 검색을 모두 수행하려면 FindControl 메소드에 의존해야합니다.

이 문제를 조사하는 동안 발견 한 유용한 정보는 런타임에 StepNavigationTemplateStepNavigationTemplateContainer이라는 내부 ASP.NET 유형이며 ID가 "StepNavigationTemplateContainerID"인 것입니다. 이 덕분에 StepNavigationTemplate을 찾고 다음 단추를 찾을 수있었습니다.

코드는 다음과 같습니다


protected void Wizard1_ActiveStepChanged(object sender, EventArgs e) 
{ 
    int step = Wizard1.ActiveStepIndex; 

    // Disable validation for Step 2. (index is zero-based) 
    if (step == 1) 
    { 
    ToggleValidation(false); 
    } 
    else // Enable validation for subsequent steps. 
    { 
    ToggleValidation(true); 
    } 
} 

private void ToggleValidation(bool flag) 
{ 
    WebControl stepNavTemplate = this.Wizard1.FindControl("StepNavigationTemplateContainerID") as WebControl; 
    if (stepNavTemplate != null) 
    { 
    Button b = stepNavTemplate.FindControl("StepNextButton") as Button; 
    if (b != null) 
    { 
     b.CausesValidation = flag; 
    } 
    } 
} 
+0

Wizard1_ActiveStepChanged 이벤트가 실행되지 않습니다. 모든 아이디어가 있습니까? – chugh97

+1

당신은 그것을 철사해야합니다, 친구! Visual Studio 속성 창의 이벤트 탭을 사용하십시오. – Cerebrus

+0

나는 그것을 연결했지만 이벤트는 실행되지 않습니다. ActiveStepIndex를 증가시키기 위해 NextButtonClick 이벤트가 발생해야합니까? – chugh97

관련 문제