Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Asp.net Wizard Control с динамическими шагами застревает

Автор вопроса: Adam S-PriceОтветов: 1

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

dynamicwizard

Ответы

Ответ 1 · Adam S-Price

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

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы