我无法在标题中解释清楚所以我在这里解释一下情景:
在这里,我有一个将放在数组中的查询。
Dim arrUsers As Object = {{sqlReader("dephead"), dropdown1}, {sqlReader("mm"), dropdown2}
如果匹配我的if else条件,我想启用下拉对象:
'indexes1= the 1st indexes of each pair in the array (the sqlReaders)
'indexes2= my dropdown objects in my user control
For Each indexes1 In arrUsers
If Session.Item("EmployeeID") = indexes1 Then
indexes2.Enabled = True
End If
Next
所以假设我的会话ID是" dephead",然后dropdown1将被启用。多数民众赞成我想要发生的事情,但我不熟悉阵列,所以请帮助我。感谢。
答案 0 :(得分:1)
这应该有效:
For i As Integer = 0 to arrUsers.GetUpperBound(0)
If Session.Item("EmployeeID") = arrUsers(i)(0) Then
arrUsers(i)(1).Enabled = True
End If
Next
您只需为数组赋予两个索引而不是一个。例如arrUsers(0)(1)
。第一个索引返回该索引处的对象,第二个索引返回先前返回的数组内的对象。 arrUsers(0)(1)
将首先在0索引({sqlReader("dephead"), dropdown1}
)处获取数组,然后在索引1(dropdown1
)处获取对象。
答案 1 :(得分:0)
这回答了我的问题。上面的答案帮助了我,我只是改变了我的数组的声明并改变了一些语法。
Dim arrUsers(,) As Object =
New Object(,) {
{sqlReader("dephead"), dropdown1}, _
{sqlReader("mm"), dropdown2}, _
}
Dim bound0 As Integer = arrUsers.GetUpperBound(0)
Dim bound1 As Integer = arrUsers.GetUpperBound(1)
For i As Integer = 0 To bound0
If Session.Item("EmployeeID") = arrUsers(i, 0) Then
arrUsers(i, 1).Enabled = True
End If
Next