昨天项目中碰到html中<label for=”ControlID”>value</label><input …./>
在.net中TextBox在页面输出的html时,其会带一长串乱七八糟的前缀,这时<label for=”ControlID”>这个ControlID我们不知道具体是什么个名称。这也缘由很多程序员对VS里的Label控件有一些属性没有太深入的研究,我们就不会犯这样的一个错误。
看以下两段代码,输出的HTML标签各有差别:
1.输出label标签
<asp:Label ID=”Label1″ runat=”server” Text=”Naam” AssociatedControlID=”Naam”></asp:Label>
<asp:TextBox ID=”Naam” runat=”server”/>
输出html是
<label id=”ctl00_ContentPlaceHolder1_Label1″ for=”ctl00_ContentPlaceHolder1_Naam”>Naam</label>
<input id=”ctl00_ContentPlaceHolder1_Naam” type=”text” name=”ctl00$ContentPlaceHolder1$Naam”/>
2. 输出span标签
<asp:Label ID=”Label1″ runat=”server” Text=”Naam”></asp:Label>
<asp:TextBox ID=”Naam” runat=”server”/>
当Label控件中的AssociatedControlID没写的话,它在页面输出的html是
<span id=”ctl00_ContentPlaceHolder1_Label1″>Naam</span>
<input id=”ctl00_ContentPlaceHolder1_Naam” type=”text” name=”ctl00$ContentPlaceHolder1$Naam”/>
程序员应该要做到能完全嵌套页面工程师的HTML代码,不要多出一个div,多出一个span或者标签变动,导致页面工程师这时得针对标签的变动而去再修改样式。