2010-04-11 5 views
3

Я хочу создать мастер, который включает в себя несколько шагов, что в заключительных шагах нам необходимо включить все этапы и сохранить в базу данных. Какой лучший дизайн для этого?Каков наилучший способ создания мастера для Интернета?

Есть ли реализация для jquery? Нужно ли сохранять шаги в сеансе до окончательного сохранения?

+1

Вы можете «подделать» мастера, показывая/скрывая divs с помощью JavaScript/jquery. Однако у вас не будет частичных представлений в db, и сложная логика в мастере также невозможна, т. Е. Поля формы всегда будут одинаковыми (без ветвления). Это всего лишь трюк UI, тогда как «настоящие» мастера часто имеют логику. Если бы вы описали, что вам нужно более подробно, это упростит ситуацию. – mnemosyn

+0

Мне тоже нравится подход на стороне клиентской стороны, потому что база данных только один раз ударяется в конец –

ответ

1

Если вы не заходите в базу данных на каждой странице мастера, вам придется использовать сеансы или файлы cookie для хранения данных между запросами страниц.

Вы также можете использовать трюки на стороне клиента, которые будут использовать javascript и скрытые кадры для хранения данных.

+0

спасибо, я думаю, что поеду на этот mathod, как я думал – Yan

1

Я создал несколько мастеров для использования в Интернете. Если вам нужно создать 2 или более мастеров, лучше создать простую структуру мастера, ответственную за навигацию и хранение данных в сеансе.

В моем случае каждый шаг мастера реализует интерфейс IWizardStep, ответственный за временное хранение данных, а также некоторую общую информацию, такую ​​как номер шага, строки отображения, следующий & предыдущих шагов и т. Д. Затем я просто их объединяю, и структура заботится о отображение их в порядке, навигация и обработка.

+0

Вы не ответили на вопрос - как хранить промежуточные данные во избежание базы данных звонки. Сессии? Печенье? что-то другое? – Oded

+0

В первом предложении говорится о хранении данных в сеансе - я нашел, что это лучший вариант, так как я могу хранить столько объектов, сколько мне нужно. Каждый экземпляр мастера имеет уникальный идентификатор сеанса, так как пользователь может одновременно открыть больше мастеров, чтобы избежать несоответствия данных. – twk

1

Я не уверен, что это то, что вам нужно, но у C# есть мастер управления, который является хорошим способом реализации процессов типа мастера.

http://weblogs.asp.net/scottgu/archive/2006/02/21/438732.aspx

Else, если вы хотите реализовать свой собственный поток, использовать сеанс, чтобы захватить значения на шаг и сохранить его позже на последнем шаге. cheers ..

+1

относительно мастера jquery, надеюсь, что это поможет. -http: //plugins.jquery.com/taxonomy/term/260 – Hanseh

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