遍历 asp.net 个文本框 visual basic
looping through asp.net textboxes visual basic
我有一个 asp.net,后面有一些 vb 代码。
我需要遍历许多文本框,并根据其中一个框的值,使该字段可见(或其他)
每个"row"字段有6个字段相关,我用前缀和后缀来区分它们。
If txtOC7_D.Text <> "" Then
txtOC7_D.Enabled = True
txtOC7_C.Enabled = True
txtOC7_1.Enabled = True
txtOC7_2.Enabled = True
txtOC7_3.Enabled = True
txtOC7_B.Enabled = True
ElseIf txtOC7_D.Text = "" Then
txtOC7_D.Enabled = False
txtOC7_C.Enabled = False
txtOC7_1.Enabled = False
txtOC7_2.Enabled = False
txtOC7_3.Enabled = False
txtOC7_B.Enabled = False
End If
If txtOC8_D.Text <> "" Then
txtOC8_D.Enabled = True
txtOC8_C.Enabled = True
txtOC8_1.Enabled = True
txtOC8_2.Enabled = True
txtOC8_3.Enabled = True
txtOC8_B.Enabled = True
ElseIf txtOC8_D.Text = "" Then
txtOC8_D.Enabled = False
txtOC8_C.Enabled = False
txtOC8_1.Enabled = False
txtOC8_2.Enabled = False
txtOC8_3.Enabled = False
txtOC8_B.Enabled = False
End If
我总共有 20 组(每组 6 个字段)。
所以我想做如下(标准 VB)但是我看不到如何在 ASP.NET VB:
上做
for l=1 to 20
If Controls("txtOC" & l) & "_D"<>"" Then
Controls("txtOC" & l) & "_D".visible=true
Controls("txtOC" & l) & "_C".visible=true
Controls("txtOC" & l) & "_1".visible=true
Controls("txtOC" & l) & "_2".visible=true
Controls("txtOC" & l) & "_3".visible=true
Controls("txtOC" & l) & "_B".visible=true
else
Controls("txtOC" & l) & "_D".visible=false
Controls("txtOC" & l) & "_C".visible=false
Controls("txtOC" & l) & "_1".visible=false
Controls("txtOC" & l) & "_2".visible=false
Controls("txtOC" & l) & "_3".visible=false
Controls("txtOC" & l) & "_B".visible=false
end if
next l
任何帮助将不胜感激。
你可以按照你的要求做,但要使用 FindControl 并正确连接它。
If CType(FindControl("txtOC" & l & "_D"), TextBox).Text <>"" Then
CType(FindControl("txtOC" & l & "_D"), TextBox).Visible=true
如果找不到控件,请将它们放在占位符中,然后在占位符对象上调用 FindControl。
你应该寻找反射方法。
但您也可以创建一个面板,并将同一行中的所有这些字段放在其中。
通过这样做,您可以使面板可见或不可见。
还有第三种选择,您还可以对控件使用 foreach 循环,然后执行检查并相应地隐藏或显示。
我有一个 asp.net,后面有一些 vb 代码。 我需要遍历许多文本框,并根据其中一个框的值,使该字段可见(或其他)
每个"row"字段有6个字段相关,我用前缀和后缀来区分它们。
If txtOC7_D.Text <> "" Then
txtOC7_D.Enabled = True
txtOC7_C.Enabled = True
txtOC7_1.Enabled = True
txtOC7_2.Enabled = True
txtOC7_3.Enabled = True
txtOC7_B.Enabled = True
ElseIf txtOC7_D.Text = "" Then
txtOC7_D.Enabled = False
txtOC7_C.Enabled = False
txtOC7_1.Enabled = False
txtOC7_2.Enabled = False
txtOC7_3.Enabled = False
txtOC7_B.Enabled = False
End If
If txtOC8_D.Text <> "" Then
txtOC8_D.Enabled = True
txtOC8_C.Enabled = True
txtOC8_1.Enabled = True
txtOC8_2.Enabled = True
txtOC8_3.Enabled = True
txtOC8_B.Enabled = True
ElseIf txtOC8_D.Text = "" Then
txtOC8_D.Enabled = False
txtOC8_C.Enabled = False
txtOC8_1.Enabled = False
txtOC8_2.Enabled = False
txtOC8_3.Enabled = False
txtOC8_B.Enabled = False
End If
我总共有 20 组(每组 6 个字段)。 所以我想做如下(标准 VB)但是我看不到如何在 ASP.NET VB:
上做for l=1 to 20
If Controls("txtOC" & l) & "_D"<>"" Then
Controls("txtOC" & l) & "_D".visible=true
Controls("txtOC" & l) & "_C".visible=true
Controls("txtOC" & l) & "_1".visible=true
Controls("txtOC" & l) & "_2".visible=true
Controls("txtOC" & l) & "_3".visible=true
Controls("txtOC" & l) & "_B".visible=true
else
Controls("txtOC" & l) & "_D".visible=false
Controls("txtOC" & l) & "_C".visible=false
Controls("txtOC" & l) & "_1".visible=false
Controls("txtOC" & l) & "_2".visible=false
Controls("txtOC" & l) & "_3".visible=false
Controls("txtOC" & l) & "_B".visible=false
end if
next l
任何帮助将不胜感激。
你可以按照你的要求做,但要使用 FindControl 并正确连接它。
If CType(FindControl("txtOC" & l & "_D"), TextBox).Text <>"" Then
CType(FindControl("txtOC" & l & "_D"), TextBox).Visible=true
如果找不到控件,请将它们放在占位符中,然后在占位符对象上调用 FindControl。
你应该寻找反射方法。
但您也可以创建一个面板,并将同一行中的所有这些字段放在其中。 通过这样做,您可以使面板可见或不可见。
还有第三种选择,您还可以对控件使用 foreach 循环,然后执行检查并相应地隐藏或显示。