코드 및 마크 업에서 설정을 시도했지만 다음 버튼을 클릭하면 페이지의 유효성을 검사하고이를 미리 지정하려고합니다. 유효성 검사가 발생해야하는 시점과 발생하지 않을 시점을 제어합니다. 어떤 제안이나 코드 샘플도 감사 할 것입니다ASP.NET의 마법사 컨트롤 - NextButton Causesvalidation 속성을 false로 설정하는 방법
1
A
답변
5
가장 쉬운 방법은 유효성 검사를 건너 뛰려는 WizardStep
에서 모든 유효성 검사기 컨트롤을 제거하는 것입니다.
그러나 고급 기능이 필요한 경우 StepNavigationTemplate
에서 다음/이전 버튼의 CausesValidation
속성을 수동으로 설정해야합니다. ASP.NET Wizard 컨트롤은 NavigationTemplates의 컨트롤에 직접 액세스 할 수있는 속성을 노출하지 않으며 NavigationTemplate에 액세스하기위한 속성을 노출하지 않습니다. 따라서 검색을 모두 수행하려면 FindControl
메소드에 의존해야합니다.
이 문제를 조사하는 동안 발견 한 유용한 정보는 런타임에 StepNavigationTemplate
이 StepNavigationTemplateContainer
이라는 내부 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;
}
}
}
가 작동 했습니까? 추가 지원이 필요한 경우 Lemme이 알 수 있습니다! ;-) – Cerebrus