2017-08-14 45 views
0

情況:閱讀asp.net textbox文本使用變量在VB.Net代碼中的名稱後

我有一個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

對象不能設置爲對象的實例。它認爲文本框是空白的,但我知道它不是。 – mbcharney

+0

如果'tName'不是現有的控件名稱,你會得到該錯誤。 –

回答

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 

基於這樣的假設:如果只有TextBox5TextBox10包含的數據,然後fCount爲2。如果這是真的,我擺脫了fCount,那麼你的循環是不正確因爲你會試圖抓住TextBox1TextBox2

我改變.ToString.Text給你的控制內容。

回到錯誤消息,Controls(tName)必須評估爲頁面上的控件,否則將會出現錯誤。

+0

當我把這段代碼中我得到以下錯誤:輸入字符串不是在一個正確的格式。這看起來很奇怪,因爲變量sFileName被定義爲一個字符串,並且asp文本框控件中只有文本。此外,fCount僅用於循環使用文本框的次數。它們從1開始分配,並按順序增加。那麼爲什麼會拋出這個錯誤呢? – mbcharney