ASP.NETアプリケーション内で<label>
タグを使用するにはどうすればよいですか?私はそれを有効で、アクセスしやすく、使いやすくしたいのです。
最適なHTMLの方法は次のとおりです。
<label for="Username">Username:</label>
<input type="text" id="Username" runat="server" />
ただし、上記のコードがASP.Netユーザーコントロールにある場合、入力IDが変更されます。つまり、ラベルの「for」属性は役に立たなくなります。ラベルタグをサーバーコントロールにし、コードの「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には、このトピックに関する ブログ投稿 があります。
使用 <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を使用する1つ以上のコントロールを構成できるようになりました。 ClientIDModeプロパティは、TextBoxで直接設定することも、親コントロールまたは収容ページで設定することもできます。
<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または他のソフトウェアが提供するものです。