ASP.NET의 마법사 제어 - NextButton CauseSvalidation 속성을 False로 설정하는 방법
문제
코드와 마크 업에서도 설정을 시도했지만 다음 버튼을 클릭하면 페이지가 검증되면 유효성 검사가 발생할 때 발생하지 않아야합니다. 모든 제안이나 코드 샘플에 감사드립니다
해결책
이 작업을 수행하는 가장 쉬운 방법은 모든 유효성 검사기 컨트롤을 WizardStep
어떤 유효성 검사를 건너 뛸 것입니다.
그러나 고급 기능이 필요한 경우 CausesValidation
다음/이전 버튼의 속성 StepNavigationTemplate
수동으로. ASP.NET 마법사 제어는 NavigationTemplates의 컨트롤에 직접 액세스 할 수있는 속성을 노출시키지 않으며 NavigationTemplate에 액세스하기위한 속성을 노출시키지 않습니다. 따라서 우리는에 의존해야합니다 FindControl
모든 검색을 수행하는 방법.
이 문제를 조사하는 동안 찾은 편리한 정보는 런타임에 StepNavigationTemplate
호출 된 내부 ASP.NET 유형입니다 StepNavigationTemplateContainer
그리고 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;
}
}
}
제휴하지 않습니다 StackOverflow