我的ASP页面中有大约20个 asp:标签,所有内容都是 ID =“lbl#”,其中#的范围是0到22.我想动态改变他们说的话。虽然我可以写
lbl1.Text = "Text goes here"
对于其中的所有23个,我想知道是否有办法循环遍历所有这些并更改其文本。
我想创建一个包含所有标签的数组,然后只做一个 For Each 循环,但我还要检查该元素是否存在 IsNothing 之前我改变了它的文字,所以我被困在那里。
如果有人可以帮助我,我真的很感激它!
非常感谢你的帮助!!
答案 0 :(得分: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
答案 1 :(得分: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在客户端执行类似操作。