Пользовательские элементы управления в виде «экранов» в веб-части - PullRequest
1 голос
/ 01 августа 2009

Я работаю над своей первой веб-частью. Я использую некоторое количество пользовательских элементов управления в качестве экранов. И здесь у меня проблема.

Первый экран содержит список динамически создаваемых опций (гиперссылок). После того, как пользователь принял решение с помощью щелчка, я хочу изменить экран и передать на новый экран некоторые параметры.

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

        SomeUserControl1 uc1 = (SomeUserControl1)Page.LoadControl("~/_controltemplates/SomeUserControl1.ascx");
        SomeUserControl2 uc2 = (SomeUserControl2)Page.LoadControl("~/_controltemplates/SomeUserControl2.ascx");
        uc2.Visible = false;
    
        Controls.Add(uc1);
        Controls.Add(uc2);
    
  2. Опция в первом пользовательском управлении реализована в виде LinkButtons (серверная часть). Событие OnClik вызывает специальный метод в классе webpart, и в этом методе я изменяю видимость своих пользовательских элементов управления и передаю некоторые параметры в usercontrol2.

Мне не нравится этот подход. Существуют ли разные способы реализации описанной функциональности?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 04 августа 2009

С точки зрения дизайна то, что вы делаете, выглядит немного пугающе. Вам следует подумать о том, чтобы объединить различные пользовательские элементы управления в единый пользовательский элемент управления, который вы можете использовать в качестве внешнего вида своей веб-части. Не связывайте различные пользовательские элементы управления и подумайте о реализации шаблона Observer, если вам нужно что-то вроде игры с видимостью элемента управления.

0 голосов
/ 02 августа 2009

Вам нужно использовать ASP.NET Wizard Control, он делает то, что вам нужно.

...