문제

어떻게 사용할 수 있습니까? <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 또는 다른 소프트웨어가 제공하는 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top