ASP.NET Control to HTML tag equivalent
This isn't a simple question, as it depends on which version of .NEt you're talking about and states of controls sometimes. For example, the PANEL, in 1 & 1.1 render to a TABLE while in later versions it's a DIV.
But overall (for 2/3), here goes:
-
Panel - Div
-
Panel -- GroupingText="###" is Fieldset, Legend
-
Label - Span
-
Button - Input, Type Button
-
Link Button - Href with JS Postback Script
-
Hyperlink - Standard HREF
-
Image Button - Input, Type Image
-
Textbox -- Default is Input, Type Text
-
Textbox -- Mode = Password is Input, type Password
-
Textbox -- Mode= Multiline is Textarea
-
DropDownList - Select
-
Listbox - Select
-
RadioButton - Input, Radio with GroupName
-
Checkbox - Input, Checkbox
-
Repeater/Listview --Complex.
-
Gridview - Table
-
Table - Table
-
File - Input, Type=File
That's the basics. The more esoteric controls such as the LOGIN control is a table with a bunch of odds an ends within it.
Stephen's list is pretty comprehensive. I'd add the following notes to it though:
Mostly it depends on the known BrowserCaps.
A 1.x Panel will render as a div in IE6+ - however in Firefox (or other "DownStream" browsers - considered DownStream because there were no details of it in the Machine.Config by default) it will render as a single cell Table - this could be resolved by supplying updated BrowserCaps for Firefox/Opera/Safari/etc, either in the Machine.Config or Web.Configs.
Also, Control Adapters can change the output - for example the CSS Control Adapters will output styled divs for most of the tabular controls (login, registration, repeaters, etc).
Note that it was announced at TechEd/PDC that ASP.NET 4.0 will have the CSS control adapters built in by default.