情况:
我有一个aspx内容页面,它有一个asp表。在表中有20行,只有一列。每个单元格中都有一个asp文本框。
我有一些代码,vb.net,当用户单击按钮时,会在文本框中添加文本。一切正常。
现在我需要做什么,似乎无法找到任何符合我情况的东西,就是当点击第二个按钮时我需要"循环"通过文本框。
我有一个隐藏的标签,其中包含实际使用的文本框数,因此我可以设置for / next循环。我似乎无法弄清楚的是如何准确地将文本框的内容分配给vb变量。
我目前有这段代码:
for x As integer = 1 to fCount
tName = "TextBox" & x
Dim cFileName as String = CType(Controls(tName), TextBox).ToString()
blah blah blah other code
Next
它在试图分配带有变量名称tName的文本框文本的行上出错。这只是我尝试过的最新代码。我尝试了很多其他的但是我似乎无法做到这一点。
我的文本框被命名为TextBox1,TextBox2等,一直到TextBox20。隐藏文件计数器允许我只尝试检索已使用的文件。
非常感谢任何帮助!!
答案 0 :(得分:0)
这是我在电脑上试过的代码。它的结构有点不同,希望能够纠正您可能遇到的其他错误。更重要的是,代码有效:
For x As Integer = 1 To 20
Dim tName As String = "TextBox" & x
If Not String.IsNullOrEmpty(CType(Controls(tName), TextBox).Text) Then
Dim cFileName As String = CType(Controls(tName), TextBox).Text
End If
Next
我根据以下假设摆脱了fCount
:如果只有TextBox5
和TextBox10
包含数据,那么fCount
将为2.如果这是真的,那么你的循环不正确,因为你试图抓住TextBox1
和TextBox2
。
我将.ToString
更改为.Text
,以便为您提供控件的内容。
回到错误消息,Controls(tName)
必须评估页面上的控件,否则您将收到错误。