提问人:Cato Johnston 提问时间:8/17/2009 更新时间:10/21/2018 访问量:1861
通过 AssociatedControlID 从文本框访问标签
Accessing a Label from a Textbox through AssociatedControlID
问:
如果我有一个标签、一个文本框和一个标签
<asp:Label ID="Label1" runat="server" Text="Name" AssociatedControlID="txtName"></asp:Label>
<asp:TextBox ID="txtName" runat="server" CssClass="textbox"></asp:TextBox>
从代码隐藏中,是否可以访问将文本框列为关联控件的控件。
答:
3赞
womp
8/17/2009
#1
这是可能的,但可能没有你想要的那么容易。任何地方都没有显示“这些是具有此 AssociatedControlID 值的所有控件”的集合。您需要以递归方式循环访问页面中的所有控件,并检查 AssociatedControlID 属性是否为标签。
你想完成什么?我知道您特别询问了有关代码隐藏的问题,但是如果最终结果是您正在尝试操作UI,我会考虑使用jQuery,因为使用一行javascript,您将能够选择页面上具有.for = "txtName"
0赞
Jeremy Wiggins
6/29/2012
#2
可以使用 LINQ 执行此操作。
var label = Page.Controls
.Cast<Control>()
.SingleOrDefault(c => c.GetType() == typeof(Label) &&
((Label)c).AssociatedControlID == "txtName");
如果有多个控件与该特定文本框关联,则使用 而不是 .Where()
SingleOrDefault()
评论