DNN 5 viewstate - PullRequest
       1

DNN 5 viewstate

1 голос
/ 30 апреля 2011

HI

Я работаю над модулем DotNetNuke 5, который в основном состоит из трех страниц; Шаг 1, Шаг 2 и Шаг 3.

На шаге 1 я показываю GridView со столбцом CheckBox и кнопкой, которая должна перейти пользователя к шагу 2.

На шаге 2 я также показываю GridView, который показывает элементы, выбранные на шаге 1.

Мои вопросы:

  • Как лучше всего передать мой выбор от шага 1 к шагу 2? ViewState? URL-параметры?

    Я пытался на шаге 1: ViewState ["SelectedItems"] = string.Join (",", list.ToArray ()); На шаге 2: я сделал:

     var items = (string)ViewState["SelectedItems"];
    

И я обнаружил, что элементы содержат пустую строку. Поддерживается ли ViewState DNN5?

  • Встроенный элемент управления ASP.Net wizard не обеспечивает достаточной гибкости для настройки внешнего вида и, следовательно, не используется. Возможно, DotNetNuke предлагает альтернативу для ASP.NET WizardControl?

Спасибо!

Ответы [ 2 ]

1 голос
/ 30 апреля 2011

ViewState определенно поддерживается в DNN. Однако, если вы на самом деле настроили разные страницы для каждого шага, ViewState не будет доступен (он сохраняется только при обратной передаче).

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

Если вы хотите объединить свои шаги в один элемент управления и использовать обратные передачи вместо перенаправления, тогда вы можете использовать ViewState. Я не думаю, что DNN предоставляет свои элементы управления фреймворка мастера, но вы можете использовать элемент управления MultiView или что-то подобное для переключения между различными шагами более вручную.

0 голосов
/ 30 апреля 2011

На мой взгляд, вам понадобится 1 единственный .ASCX для вашего модуля DNN, но вам понадобятся три панели внутри, по одной на каждый шаг.Я бы назвал панели Panel_Step1, Panel_Step2 и Panel_Step3.Шаги 2 и 3 будут изначально скрыты.

Каждая панель будет содержать все элементы управления и графику для соответствующего шага в мастере.

Итак, когда пользователь нажимает кнопку «Следующий шаг», чтобы перейти от шага 1 к шагу 2, ваш код скроет Panel_Step1 и покажет Panel_Step2.Вам понадобится функция инициализации Panel_Step2.Давайте назовем его InitStep2 ().

Внутри этой функции InitStep2 () вы сможете анализировать значения и выборки, сделанные пользователем на шаге 1, путем анализа направления контрольных значений.

Пример: Textbox_Step1_Name.text, DropDown_Step1_State.SelectedValue и т. Д.

Эти значения действительно хранятся в состоянии просмотра.

Выполнение мастера таким образом на самом деле не отличается отделать это с помощью .ASCX за пределами DNN.У вас есть доступ к состоянию просмотра, сеансу и т. Д.

...