如果我有标签,文本框和标签
<asp:Label ID="Label1" runat="server" Text="Name" AssociatedControlID="txtName"></asp:Label>
<asp:TextBox ID="txtName" runat="server" CssClass="textbox"></asp:TextBox>
从代码隐藏中,可以访问将文本框列为关联控件的控件。
答案 0 :(得分:3)
这是可能的,但可能并不像你想的那么容易。在任何地方都没有集合说“这些都是具有此AssociatedControlID值的控件”。您需要loop over all the controls in the page recursively并检查AssociatedControlID属性(如果它是标签。
)你想要完成什么?我知道你特别询问了代码隐藏的问题,但如果最终结果是你试图操纵UI,我会考虑使用jQuery,就像使用单行javascript一样,你可以选择所有元素在页面上有for = "txtName"
。
答案 1 :(得分:0)
你可以使用LINQ来做到这一点。
var label = Page.Controls
.Cast<Control>()
.SingleOrDefault(c => c.GetType() == typeof(Label) &&
((Label)c).AssociatedControlID == "txtName");
如果您有多个与该特定文本框关联的控件,请使用Where()
代替SingleOrDefault()
。