Существует ли элегантный / простой способ обработки логического потока для интерфейса мастера - PullRequest
1 голос
/ 26 августа 2011

У меня есть WebForm, которая состоит из нескольких десятков элементов пользовательского интерфейса (все элементы управления сервером). Я превратил всю страницу в подобный мастеру пользовательский интерфейс, разделив элементы пользовательского интерфейса на отдельные этапы, используя элементы управления asp: Placeholder и установив их видимость между постбеками. Только один заполнитель виден одновременно.

Если пользовательский интерфейс состоял исключительно из перехода от шага 1 к шагу 10, довольно просто создать общий обработчик кнопки «Следующая / Предыдущая» для перемещения по шагам. Однако существует несколько элементов пользовательского интерфейса, которые определяют, какие шаги (панели мастера) отображаются. (две радиокнопки, два флажка на разных страницах)

Существует ли элегантный или простой способ достижения этой логики потока без создания выделенного обработчика кликов для каждой кнопки «Далее» или «Назад» на странице? Если есть шаблон для этого, он ускользает от меня.

Ответы [ 3 ]

1 голос
/ 26 августа 2011

Взгляните на это: Мастер jQuery Form

Я недавно преобразовал форму в мастер, и она работает очень хорошо. Это может просто сработать для вас.

1 голос
/ 26 августа 2011

Создание главной страницы Добавьте кнопки навигации на главную страницу.

Создайте абстрактный базовый класс, который наследуется от Web.UI.Page.

 public abstract class WizardPage: Page
    {
        public abstract void NextStep();
        public abstract void PreviousStep();
    }

Добавьте абстрактные методы для NextStepи PreviousStep.

Создайте каждый шаг мастера как отдельную страницу, которая наследуется от базового класса.

Реализуйте шаг NextStep и PreviousStep на каждой странице с соответствующей навигацией.

Проводваши кнопки на главной странице для вызова метода активной страницы ...

 protected void NextButton_Click(object sender, EventArgs e)
        {
            if (Page is WizardPage)
            {
                WizardPage wizPage = (WizardPage)Page;
                wizPage.NextStep();
            }
        }

Все это, как говорится - я бы проверил контроль мастера.

0 голосов
/ 26 августа 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...