Динамическая генерация контролов на странице...
От: Ryf  
Дата: 09.12.04 09:10
Оценка:
Есть база данных, где хранятся параметры контролов(тип контрола — textbox, dropdownlist и др, ширина, высота ну и так далее). При создании контрола я прохожу по этой базе выдираю его тип и свойства, далее такой код...



 switch(dr["ASPTYPE"].ToString().Trim()) 
 {
   case "WebTextEdit":
    // создаем webtextedit
        ...
   case "DropDownList"
        // создаем dropdownlis

  //  ну и так далее
 }


1. Можно ли не использовать switch а создать экземпляр класса Control и потом создавать объект на основе типа который передан, т.е. что-то похожее на это:


Control newControl;
string controlType = dr["ASPTYPE"].ToString().Trim();
newControl = new ( controlType ?????)



2. после создания контрола я прописываю его свойства т.е.

case "webtextedit":
  WebTextEdit wte = new WebTextEdit();

  for (int j = 0; j < sdProps.Count; j+=2)
  {
    switch(sdProps[j])
    {
      case "Width":       wte.Width = Convert.ToUInt16(sdProps[j+1]); break;
      case "Height":      wte.Height = Convert.ToUInt16(sdProps[j+1]);    break;
      case "BorderColor":    wte.BorderColor = Color.FromName(sdProps[j+1]); break;
      case "BorderWidth":    wte.BorderWidth = Convert.ToUInt16(sdProps[j+1]); break;
      // и т.д..
    }
  }

Можно ли контролу отпрвить сразу словарик в виде ("наименование свойства", "значения свойства") чтобы избавиться от switch или как-то получить перечисление свойств контрола...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.