Управление ASP.NET в теге HTML эквивалентно
Я ищу шпаргалку, которая позволит мне показать конструктору HTML эквивалентные элементы управления asp.net для стандартных тегов HTML. Например, Чтобы было понятно, я хотел бы получить ссылку на список основных элементов управления ASP.NET с описанием их отношения к стандартному HTML. Было бы здорово, если бы это было в формате PDF или на удобной для чтения и печати веб-странице. Причиной, в моем случае, было бы то, что у нас есть PHP-разработчик, который очень хорошо знаком с HTML, который будет работать над нашим проектом, и я чувствую, что было бы полезно лучше понять стандартные серверные элементы управления ASP.NET, если бы я мог протяните ему такую "шпаргалку". Я имею в виду, в основном,.NET 2.0 framework, но мы также работаем с 3.0/3.5.
5 ответов
Это не простой вопрос, поскольку он зависит от того, о какой версии.NEt вы говорите, и иногда от состояний элементов управления. Например, PANEL в 1 и 1.1 визуализируется в TABLE, а в более поздних версиях это DIV.
Но в целом (для 2/3), здесь идет:
- Панель - Div
- Panel - GroupingText="###" - это Fieldset, Legend
- Label - Span
- Кнопка - Ввод, Тип Кнопка
- Кнопка ссылки - Href со скриптом обратной передачи JS
- Гиперссылка - Стандарт HREF
- Кнопка Image - ввод, тип изображения
- Текстовое поле - по умолчанию ввод, введите текст
- Текстовое поле - Режим = Пароль - Ввод, введите Пароль
- Textbox - Mode = Multiline is Textarea
- DropDownList - Выбрать
- Список - Выбрать
- RadioButton - Ввод, Радио с GroupName
- Флажок - Ввод, Флажок
- Повторитель /Listview --Комплекс.
- Gridview - Таблица
- Стол - Стол
Файл - Ввод, Тип = Файл
Это основы. Более эзотерические элементы управления, такие как элемент LOGIN, представляют собой таблицу, в которой есть множество шансов и концов.
Список Стивена довольно исчерпывающий. Я бы добавил к этому следующие заметки:
В основном это зависит от известных BrowserCaps.
Панель 1.x будет отображаться как div в IE6+ - однако в Firefox (или других браузерах "DownStream" - считается DownStream, потому что в Machine.Config по умолчанию не было никаких деталей), она будет отображаться как таблица с одной ячейкой - это может быть решено путем предоставления обновленных BrowserCaps для Firefox/Opera/Safari/etc, либо в Machine.Config, либо в Web.Configs.
Кроме того, управляющие адаптеры могут изменять вывод - например, управляющие адаптеры CSS будут выводить стилизованные элементы div для большинства табличных элементов управления (вход в систему, регистрация, повторители и т. Д.).
Обратите внимание, что на TechEd/PDC было объявлено, что в ASP.NET 4.0 будут встроены адаптеры управления CSS по умолчанию.
Это не дает прямого ответа на ваш вопрос, но во многих случаях вы можете добавить runat="server" к обычному тегу HTML, чтобы ASP.Net знал об этом. Это может облегчить работу дизайнера, если вы хотите иметь возможность динамически изменять страницу, но при этом позволить дизайнеру работать над ней.
<div id="myDiv" runat="server"></div>
<span id="mySpan" runat="server"></span>
Редактировать:
Одна вещь, которую я забыл упомянуть (как указал steve_c), это то, что добавление runat="server" изменит идентификатор тега, что может быть немного болезненным. Вам не повезло, если вы используете идентификатор в своем CSS, но в своем JavaScript вы можете добавить что-то вроде <% = myDiv.ClientID%>, чтобы получить идентификатор, сгенерированный.Net.
htmlgenericcontrol может быть полезен, если вам нужно визуализировать определенный тег
protected void CreateHeaders(List<Group_Info> group_Info)
{
foreach (Group_Info gi in group_Info)
{
HtmlGenericControl groupContainer = new HtmlGenericControl("DIV");
String lastLableID = "disp" + gi.GroupName.ToString().Replace(" ", "");
groupContainer.ID = lastLableID;
groupContainer.Attributes.Add("class", "content-groups");
HtmlGenericControl groupTitle = new HtmlGenericControl("DIV");
groupTitle.ID = lastLableID + "Sub1";
if (gi.GroupName.Trim().Length == 0)
groupTitle.Attributes.Add("class", "titlebar-hidden");
else
{
groupTitle.Attributes.Add("class", "titlebar");
groupTitle.InnerText = gi.GroupName.ToString().Trim();
}
groupContainer.Controls.Add(groupTitle);
CreateFields(gi, ref groupContainer);
this.pageContainer.Controls.Add(groupContainer);
}
}