Asp.net Wizard Control с динамическими шагами зависает - PullRequest
0 голосов
/ 07 мая 2010

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

1 Ответ

0 голосов
/ 07 мая 2010

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

...