У меня есть элемент управления мастера, который должен использовать динамические шаги. У меня есть следующий код, который загружает динамические шаги (все это прекрасно работает). У меня 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, потому что мне нужен доступ к состоянию просмотра, чтобы узнать, сколько шагов нужно нарисовать.