Я пытался установить его в коде, а также в разметке, но когда нажимается кнопка «Далее», страница проверяется, я хочу предотвратить это и контролировать, когда должна происходить проверка, а когда нет. Любые предложения или образцы кода будут оценены
Wizard Control в ASP.NET — как установить для свойства NextButton Causesvalidation значение false
Ответы (1)
Самый простой способ сделать это — удалить все элементы управления валидатора из WizardStep
, в котором проверка должна быть пропущена.
Однако, если вам нужны расширенные функции, вам нужно будет вручную установить свойство CausesValidation
кнопок «Далее/Предыдущий» в вашем StepNavigationTemplate
. Элемент управления ASP.NET Wizard не предоставляет ни свойств, позволяющих получить прямой доступ к элементам управления в NavigationTemplates, ни свойств для доступа к NavigationTemplate. Итак, нам нужно полагаться на метод FindControl
для выполнения всего поиска.
Полезная информация, которую я нашел при исследовании этой проблемы, заключалась в том, что во время выполнения StepNavigationTemplate
относится к внутреннему типу ASP.NET с именем StepNavigationTemplateContainer
и имеет идентификатор "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;
}
}
}
StartNextButton
. В противном случае, отличный совет.
- person Jon Egerton; 02.07.2013