2014-03-06 127 views
2

我正在将使用Bootstrap 3的HTML代码转换为ASP.NET Web窗体。 Bootstrap 3类“form-group”具有“For”属性的标签。例如:相当于HTML属性的ASP.NET标签

<div class="form-group"> 
    <label for="txtField" class="control-label">Caption:</lable> 
    <input type="text" id="txtField" name="txtField" class="form-control" /> 
</div> 

我将上面的代码到使用控件:

<div class="form-group"> 
    <asp:label class="control-label">Caption:></asp:lable> 
    <asp:TextBox id="txtField" class="form-control" /asp:TextBox> 
</div> 

<asp:TextBox>没有属性“名”和<asp:Label>没有属性“为”。我应该用什么来代替?或者,如果我跳过这些属性,它并不重要?

+0

关闭asp中的标记错误:TextBox – mcsilvio

回答

0

一般而言,跳过这些属性会产生影响。

'for'属性的效果是什么?见here。它以较小的方式改变标签的行为(所以不重要)。

'name'属性的作用是什么?一般来说,这是至关重要的,因为它是识别客户端和服务器之间字段的主要方式。但是,如果ASP为你管理(并且它正在工作),你可能不需要它。

另一种方法是预测'name'属性是什么,并将其放置在标签的'for'属性中。

5

使用AssociatedControlID

<asp:Label runat="server" CssClass="control-label" AssociatedControlID="txtField">Caption</asp:Label> 
<asp:TextBox runat="server" ID=txtField" CssClass="form-control" /> 

MSDN documentation page

当AssociatedControlID属性设置,标签控制呈现为HTML标签元件,与用于属性设置为ID属性的相关控制。您可以使用Label属性设置标签元素的其他属性。例如,可以使用Text和AccessKey属性为关联的控件提供标题和热键。

顺便说一下,似乎很多人似乎认为,忽略这些属性在现实中会对某些用户产生深远的影响时不起作用;特别是屏幕阅读器的用户。

屏幕阅读器使用标签上的for属性来告诉用户在遇到表单控件时应该输入的内容。因此,您不仅应该努力将这些属性包含在您的Web应用程序中,还应该尽可能使标签的内容尽可能具有描述性。为Au产生

+0

肖恩,非常感谢! – Hidalgo

1

对于标签的使用

<asp:Label class="control-label" runat="server" AssociatedControlId="txtField">Caption:></asp:Label> 

文本框的名称。如果您想要预测名称,请使用ClientIDMode属性,例如value为static。