Thursday 23 January 2014

Literal vs Label in asp.net

The main difference is that Literal controls just render out text, but Label controls surround it with <span> tags (Unless you use the AssociatedControlID property, in which case a Label control will render a <label> tag).

So, labels can be styled easier, but if you're just inserting text, literals are the way to go. Literal controls also have a handy property Mode which governs how the text is rendered. You can have it HTML-encoded, or rendered without any changes, or have any "unsupported markup-language elements" removed.

If you're not applying any styles (e.g. by using Label's CssClass property), it will be fine to replace Label controls with Literal controls.

<asp:Label EnableViewState="false" ID="Label8" runat="server" 
        AssociatedControlID="txtEmail">Email Address:</asp:Label>

<asp:TextBox ID="txtEmail" runat="server"></asp:TextBox>
It is optimal to use a label element because it will correctly turn it into a html label element with the correct for attribute targeting your text box, so that if a user clicks on the label it automatically sets their cursor inside the text field.

Otherwise use the literal unless having the text wrapped in a span would be beneficial for css styling.

No comments:

Post a Comment

Total Pageviews