ASP.NET VB.NET中的动态ID名称

时间:2011-02-25 21:14:15

标签: asp.net vb.net dynamic

我的ASP页面中有大约20个 asp:标签,所有内容都是 ID =“lbl#”,其中#的范围是0到22.我想动态改变他们说的话。虽然我可以写

lbl1.Text = "Text goes here"

对于其中的所有23个,我想知道是否有办法循环遍历所有这些并更改其文本。

我想创建一个包含所有标签的数组,然后只做一个 For Each 循环,但我还要检查该元素是否存在 IsNothing 之前我改变了它的文字,所以我被困在那里。

如果有人可以帮助我,我真的很感激它!

非常感谢你的帮助!!

2 个答案:

答案 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在客户端执行类似操作。