我有一个带有各种输入的aspx web表单,包括一个带1-10的下拉框。提交表单时,会看到一个新面板,其中包含10行静态textbox和label控件。默认情况下,这些控件都设置为visible=false。
我想要的是基于在上一个下拉框中选择的数字,即我想要更改为visible=true的控件的行数。除了最后一个字符之外,这些控件的ID对于每一行都是相同的,这是为了反映它们属于哪一行。因此第1行将具有以下内容:
ticketNum_Lbl_1 your_res_Txt_1 title_Txt_1 firstname_Txt_1 surname_Txt_1 ticketNum_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