У меня есть элемент управления мастера, который должен использовать динамические шаги. У меня есть следующий код, который загружает динамические шаги (все это работает нормально). У меня есть 7 статических шагов.
protected override LoadViewState(object savedState)
{
base.LoadViewState(savedState);
int offset = 4;
foreach(string stepName in this.ViewState["Steps"])
{
WizardStep step = new WizardStep();
step.Title = stepName;
this.Wizard1.WizardSteps.AddAt(step, offset); // LINE 1
this.Wizard1.WizardSteps.Add(step); // LINE 2
offset++;
}
}
У меня есть две проблемы, когда я выполняю код и использую строку 1. Когда я перехожу к динамическому шагу, он не позволяет вам перейти к следующему (с помощью кнопки «Далее»). Кажется, это потому, что this.IsValid имеет значение false (но у меня нет элементов управления проверкой на странице). Кажется, он просто застрял на этой текущей странице.
Когда я запускаю с использованием строки 2, он снова добавляет шаги. Когда я нахожусь на первом динамическом шаге и нажимаю «Далее», я получаю сообщение об ошибке. ActiveViewIndex устанавливается равным «7». Он должен быть меньше текущего элемента управления представлением '7'. Для динамически добавляемых представлений убедитесь, что они добавляются до или в событии Page_PreInit.
Проблема со второй ошибкой заключается в том, что я не могу добавить динамические шаги в Page_PreInit, потому что мне нужен доступ к состоянию представления, чтобы узнать, сколько шагов нужно отрисовать.