2010-05-07 2 views
0

У меня есть элемент управления мастером, который должен использовать динамические шаги. У меня есть следующий код, который загружает динамические шаги (все это работает отлично). У меня 7 статических шагов.Управление мастером Asp.net с динамическими шагами застревает

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

Когда я бегу с использованием строки 2, он снова добавляет шаги. Когда я нахожусь на первом динамическом шаге и нажимаю «Далее», я получаю сообщение об ошибке. ActiveViewIndex устанавливается «7». Он должен быть меньше, чем текущие элементы управления представлением «7». Для динамически добавленных просмотров создайте сир, которые они добавят до или в событии Page_PreInit.

Проблема со второй ошибкой заключается в том, что я не могу добавить динамические шаги в Page_PreInit, потому что мне нужен доступ к viewstate, чтобы узнать, сколько шагов для рисования.

ответ

0

Я нашел проблему. Его необходимо добавить в событие Page_PreInit. Это означает, что я не могу использовать ViewState, но вместо этого я использую Session.

Смежные вопросы