2011-02-25 54 views
4

我有大約20 ASP:在我的ASP頁面標籤,所有ID = 「#LBL」,其中#範圍爲0〜22,我想動態改變他們所說的話。雖然我可以寫動態ID名稱在ASP.NET VB.NET

lbl1.Text = "Text goes here" 

爲他們的所有23,我想知道是否有通過所有這些元素的方式來循環,改變他們的文本。

我想創建我的所有標籤的數組,然後只是做一個對於每個循環,但我也有檢查,如果該元素與IsNothing之前,我改變它的文本存在,所以我被困那裏。

如果有人能幫助我,我真的很感激它!

非常感謝您的幫助!

回答

2

可以動態查找控制在頁面上通過在Page_Load方法使用System.Web.UI.Page.FindControl()方法:

Dim startIndex As Integer = 0 
Dim stopIndex As Integer = 22 

For index = startIndex To stopIndex 
    Dim myLabel As Label = TryCast(FindControl("lbl" + index), Label) 

    If myLabel Is Nothing Then 
     Continue For 
    End If 

    myLabel.Text = "Text goes here" 
Next 
+0

比我的更有效的,只要你始終知道有多少(你應該從0開始) 。 – StingyJack 2011-02-25 21:41:28

+0

是的,如果他知道什麼是開始和結束,那麼效果很好。 – 2011-02-25 21:45:57

+0

這工作完美。謝謝,非常感謝!並感謝你的貢獻StingyJack!我可能會在將來使用這種技術很多:)再次感謝! – Sebolains 2011-02-26 03:29:10

0

像這樣的事情可能會工作,但你可能會需要調整它(它從內存中,所以它不完全是100%語法正確)

For Each _ctl as Control In Me.Controls() 
    If (TypeOf(_ctl) Is Label) = False Then 
    Continue For 
    End If 

    'add additional filter conditions' 

    DirectCast(_ctl, Label).Text = "Text Goes Here" 
Next 

您還可以在客戶端類似的東西使用jQuery selectors