2009-08-16 39 views
2

訪問一個標籤從一個文本框如果我有一個標籤和一個文本框和一個標籤通過AssociatedControlID

<asp:Label ID="Label1" runat="server" Text="Name" AssociatedControlID="txtName"></asp:Label> 
<asp:TextBox ID="txtName" runat="server" CssClass="textbox"></asp:TextBox> 

從代碼的背後,是更多鈔票來訪問該列表中的文本框爲關聯控制的控制方法。

回答

3

這是可能的,但可能並不像您想的那樣容易。沒有收集任何地方說「這些都是具有此AssociatedControlID值的控件」。您需要loop over all the controls in the page recursively並檢查AssociatedControlID屬性是否爲標籤。

你想完成什麼?我知道你特意詢問了關於代碼隱藏的問題,但如果最終結果是你試圖操作UI,我會考慮使用jQuery,就像使用單行的javascript一樣,你可以選擇所有元素在有for = "txtName"的頁面上。

0

你可以用LINQ來做。

var label = Page.Controls 
       .Cast<Control>() 
       .SingleOrDefault(c => c.GetType() == typeof(Label) && 
             ((Label)c).AssociatedControlID == "txtName"); 

如果你有特定的文本框相關的多個控件,那麼使用Where(),而不是SingleOrDefault()