在AssociatedControlIDLabel控件上设置属性时,它将呈现<label>HTML标签,其for属性设置为目标控件的ClientID:
<label id="Label" for="TextBox">Dat TextBox</label>
<input id="TextBox" name="TextBox" type="text">
Run Code Online (Sandbox Code Playgroud)
我制作了一个服务器控件,其中包含一个TextBox,我希望标签将其for属性呈现给控件的内部TextBox。我首先想到的是直接指向我的服务器控件:
<asp:Label ID="AwesomeLabel" runat="server" AssociatedControlID="AwesomeControl">
Check out my awesome control!</asp:Label>
<custom:MyControl ID="AwesomeControl" runat="Server" />
Run Code Online (Sandbox Code Playgroud)
但这使该for属性指向<span>围绕服务器控件内容呈现的属性:
<label id="AwesomeLabel" for="AwesomeControl">Check out my awesome control!</label>
<span id="AwesomeControl">
<input name="AwesomeControl$ct123" type="text"></span>
Run Code Online (Sandbox Code Playgroud)
好像只是通过获取目标控件的ClientID来AssociatedControlID设置for属性:
http://msdn.microsoft.com/zh-CN/library/system.web.ui.webcontrols.label.associatedcontrolid.aspx
我不想进入页面的.aspx.cs以编程方式进行设置,因为该服务器控件被频繁使用,并且我希望其实现尽快。
还有其他方法可以使Label标签通过for.aspx标记或通过服务器控件的代码将其属性呈现到服务器控件的内部TextBox中吗?
小智 5
如果您的用户控件的ID为AwesomeControl,而用户控件中的文本框的ID为AwesomeTextbox,则必须将AssociatedControlID设置为此:AwesomeControl:AwesomeTextbox。
<asp:Label ID="AwesomeLabel" runat="server" AssociatedControlID="AwesomeControl:AwesomeTextbox">
Check out my awesome control!</asp:Label>
<custom:MyControl ID="AwesomeControl" runat="Server" />
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2613 次 |
| 最近记录: |