我有16个名为q1,q2,q3,...,q16和txt_q1,txt_q2,...,txt_q16的项目 我需要检查每一个,所以我有一个for和内部我有If这样:
For Cnt AS Integer = 1 To 16 Step 1
If("q"&cnt = "") Then
"txt_q"&cnt.Style.Add("color","blue")
....
..
End If
End For
这个想法是使用For检查al项以避免16 Ifs,但是我有语法错误。 我该怎么办?
txt_q1,txt_q2 ...是asp:标签的ID,我有一个radiobuttonList,所以我得到了radiobutton文本,我将q1,q2,q3 ......设置为相应的radiobuttonlist。所以我想检查是否有未检查的radiobuttonlist,如果不是,我将颜色更改为蓝色到asp:标签。所以我想避免为每个radiobuttonlist制作16个ifs并使用For来制作它,因为变量中唯一改变的是数字是相同的" q"和#34; txt_q"所以我想把这个数字添加到" q"或" txt_q"使一个名为q1或txt_q1的变量已经存在,并以此方式访问txt_q1.Style.Add()并更改该标签的颜色。
谢谢
答案 0 :(得分:0)
仅供您理解:
当您编写"txt_q"&cnt
时,您正在创建一个新的字符串文字,例如"txt_q1"
,"txt_q2"
等。这类似于变量的名称,但实际上是完全不同的东西。变量的名称仅供您在代码中编写。变量的值是对控件对象的引用。您需要的是获得对控件的引用。这可以通过多种方式完成,一种是使用FindControl()方法。
For Cnt AS Integer = 1 To 16 Step 1
Dim c = FindControl("q" & cnt) 'pass in the ID here, you will get a reference
'you can use c to access the properties e.g. c.Style
End For
再次,只是为了澄清
c.Style 'c is a variable holding a reference to the control
"c".Style ' "c" is a simple string