Свойства пользовательских серверных элементов управления Asp.Net 2 - PullRequest
1 голос
/ 04 октября 2008

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

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

так:

myComposite.ShowDropdown = true;

Если значение равно true, отображается раскрывающийся список, в противном случае отображается текстовое поле.

Значение свойства должно быть сохранено во всех обратных передачах, а правильный элемент управления должен отображаться на основе значения обратной передачи.

Какие-нибудь хорошие примеры там?

Ответы [ 2 ]

3 голосов
/ 04 октября 2008

Вы используете ViewState для хранения значения свойства, чтобы оно сохранялось между обратными передачами, но вы должны сделать это правильно .

public virtual bool ShowDropdown
{
   get
   {
      object o = ViewState["ShowDropdown"];
      if (o != null)
         return (bool)o;
      return false; // Default value
   }
   set
   {
      bool oldValue = ShowDropdown;
      if (value != oldValue)
      {
         ViewState["ShowDropdown"] = value;
      }
   }
}

Возможно, где-то в вашем методе Render вы показываете или скрываете элемент управления DropDown на основе значения свойства:

dropDown.Visible = ShowDropDown;
textBox.Visible = !ShowDropDown;

См. Также Пример составного веб-элемента управления .

0 голосов
/ 04 октября 2008

Я бы подумал что-то вроде:

public bool ShowDropDown
{
    get{ return (bool)ViewState["ShowDropDown"]; }
    set{ ViewState["ShowDropDown"]; }
}


private  void Page_Load(object sender, EventArgs e)
{
    DropDaownControl.Visible = ShowDropDown;
    TextBoxControl.Visible = !ShowDropDown;
} 
/* some more code */
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...