Размещение динамически создаваемых элементов управления в веб-форме

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

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

Вот как я создаю один элемент управления:

Label lbl = new Label();
lbl.ID = "lbl";
lbl.Text = "Test";
PlaceHolderMain.Controls.Add(lbl);

Заранее спасибо за помощь,

Мариуш.


person Mariusz Schimke    schedule 26.04.2009    source источник


Ответы (1)


У вас есть несколько вариантов:

  1. Добавьте дополнительные элементы управления, такие как Literal. Контролируйте, где текст представляет собой нужный HTML-код, например тег <BR/> или nbsp; между добавленными элементами управления.
  2. Имейте несколько элементов управления Placeholder для каждого соответствующего раздела.
  3. Используйте CSS для размещения элементов управления там, где вы хотите. Я не эксперт по CSS, но это можно сделать, но для этого требуется понимание позиционирования CSS.
  4. Добавьте элементы управления в родительский элемент управления, например в таблицу, чтобы можно было добавлять элементы управления в ячейку таблицы в строке. Это означало бы создание строк и ячеек для добавления в таблицу, но это дало бы вам больше контроля над макетом.

Надеюсь, это даст вам несколько идей, которые могут помочь.

person CertifiedCrazy    schedule 26.04.2009
comment
Я думаю, что это почти охватывает большинство доступных вариантов. Отличный ответ! +1 - person Cerebrus; 26.04.2009