使用循环 VB.net 更改具有相似 ID 的多个控件的属性



>我有一个带有各种输入的aspx Web表单,包括一个带有1-10的下拉框。 提交表单后,将显示一个新面板,其中包含 10 行静态文本框和标签控件。 默认情况下,这些控件都设置为 visible=false。

我想要的是基于在上一个下拉框中选择的数字,即我要更改为 visible=true 的控件行数。 这些控件的 ID 对于每一行都是相同的,除了最后一个字符,以反映它们属于哪一行。 因此,第 1 行将具有以下内容:

ticketNum_Lbl_1your_res_Txt_1title_Txt_1firstname_Txt_1surname_Txt_1ticketNum_Txt_1

我想要的是一个简单的循环,它将检查控件 ID 末尾的数字,并将其与下拉列表中选择的数字进行比较。

为清楚起见,下拉列表供用户选择他们想要预订的桌子上的座位数,以下屏幕将让他们为他们预订的座位分配姓名。

我已经尝试了几件事,但显然仍然没有得到它,尽管它可能

大致如下:
    Dim rowsNeeded As Integer = number_of_tickets_Ddl.SelectedValue
        For a = 1 To rowsNeeded
        Me.Controls("ticketNum_Lbl_" & a).Visible = True
        Me.Controls("your_res_Txt_" & a).Visible = True
        Me.Controls("title_Txt_" & a).Visible = True
        Me.Controls("firstname_Txt_" & a).Visible = True
        Me.Controls("surname_Txt_" & a).Visible = True
        Me.Controls("ticketNum_Txt_" & a).Visible = True
    Next

但这会带来一个错误,因为控件引用索引(整数)而不是控件的名称或 ID(似乎?

任何帮助表示赞赏。

你应该使用 FindControl

Me.FindControl("ticketNum_Lbl_" & a).Visible = True

最新更新