asp.net에서 <라벨> 태그를 사용하는 방법은 무엇입니까?
문제
어떻게 사용할 수 있습니까? <label>
ASP.NET 응용 프로그램 내에서 태그가 있습니까? 나는 그것이 유효하고 접근 가능하며 사용할 수 있기를 원합니다.
최적의 HTML 방식은 다음과 같습니다.
<label for="Username">Username:</label>
<input type="text" id="Username" runat="server" />
그러나 위 코드가 ASP.NET 사용자 컨트롤에 있으면 입력 ID가 변경됩니다. 레이블 태그를 서버 컨트롤로 만들고 코드에서 "for"속성을 설정할 수 있습니다.Username.ClientID
), 그러나 그런 간단한 일을위한 많은 작업처럼 보입니다.
나는 또한 과거에 사용 된이 HTML을 보았습니다.
<label>
<span>Username</span>
<input type="text" id="Username" runat="server" />
</label>
적절한 접근법은 무엇입니까?
해결책
나는 사용한다 <asp:Label ... AssociatedControlID="Username" ...>
이것에 대한 제어. 그들은 렌더링됩니다 <label>
태그를 설정하고 설정합니다 for
적절하게 속성.
원하는 경우 라벨 제어 내의 다른 태그를 중첩 할 수도 있습니다.
<asp:Label ID="UsernameLabel"
Text="Username:"
AssociatedControlID="UsernameTextBox"
runat="server">
<asp:TextBox ID="UsernameTextBox" runat="server" />
</asp:Label>
다른 팁
다음과 같이 쓸 수도 있습니다.
<label for="<%= Username.ClientID %>">Username:</label>
<asp:TextBox ID="Username" runat="server" />
Phil Haack은 a 블로그 게시물 이 주제에 대해
사용 <asp:Label>
서버 제어. 관련 제어 ID를 설정하는 데 사용할 수있는 속성이 있습니다.
<asp:Label ID="label1" runat="server" Text="Username" AssociatedControlID="Text1" />
<asp:TextBox ID="Text1" runat="server" />
가장 쉬운 방법은 이것입니다.
<asp:Label AssociatedControlID="Username" runat="server" Text="Username:"></asp:Label>
<asp:TextBox ID="Username" runat="server"></asp:TextBox>
.NET 4를 사용하는 경우 이제 ClientIdMode 속성을 사용하여 정적 또는 예측 가능한 ID를 사용하도록 하나 이상의 컨트롤을 구성 할 수 있습니다. ClientIdMode 속성은 텍스트 상자에 직접 설정하거나 부모 컨트롤 또는 포함 페이지에서 설정할 수 있습니다.
<label for="Username">Username:</label>
<asp:TextBox ID="Username" runat="server" ClientIDMode="Static" />
ClientIdMode 켜기에 대해 자세히 알아보십시오 MSDN
라벨을 원하지만 사용할 다른 컨트롤이없는 경우 AssociatedControlID
라벨 자체를 사용할 수 있습니다
<asp:Label ID="Not_Span" AssociatedControlID="Not_Span" Text="Will be rendered as label" />
<p><asp:Label ID="label1" Text="Username:" AssociatedControlID="txtUserName" runat="server"> <asp:TextBox ID="txtUserName" runat="server" /></asp:Label></p>
당신은 또한 내 시도와 이것 :
<asp:Label ID="Label1" runat="server" Text="label"></asp:Label>
레이블을 끌고 떨어 뜨릴 경우 Visual Studio 또는 다른 소프트웨어가 제공하는 것입니다.