我們有一個需要收集調查數據的項目。在網站的特定頁面上,有21個問題,每個問題的比例爲1-5,用戶在表格中爲每個問題選擇一個單選按鈕。是否有可能在VB中使用for循環計數器來更改每次被引用的變量?
該調查正在VB.NET中進行編碼。數據提交給SQL數據庫。所有單選按鈕的命名都是相似的,因此只有數字會隨着問題而改變 - 認爲這會使後端編碼變得更容易。在後面的代碼我希望做一些事來的效果:
For i = 1 To 21
If rbLWHFQ_Q(i)A1.Checked Then
myCommand.Parameters.AddWithValue("@LWHFQ_Q(i)", rbLWHFQ_Q(i)_A1.Value)
ElseIf rbLWHFQ_Q(i)_A2.Checked Then
myCommand.Parameters.AddWithValue("@LWHFQ_Q(i)", rbLWHFQ_Q(i)_A2.Value)
ElseIf rbLWHFQ_Q(i)_A3.Checked Then
myCommand.Parameters.AddWithValue("@LWHFQ_Q(i)", rbLWHFQ_Q(i)_A3.Value)
ElseIf rbLWHFQ_Q(i)_A4.Checked Then
myCommand.Parameters.AddWithValue("@LWHFQ_Q(i)", rbLWHFQ_Q(i)_A4.Value)
ElseIf rbLWHFQ_Q(i)_A5.Checked Then
myCommand.Parameters.AddWithValue("@LWHFQ_Q(i)", rbLWHFQ_Q(i)_A5.Value)
ElseIf rbLWHFQ_Q(i)_A6.Checked Then
myCommand.Parameters.AddWithValue("@LWHFQ_Q(i)", rbLWHFQ_Q(i)_A6.Value)
ElseIf rbLWHFQ_Q(i)_A7.Checked Then
myCommand.Parameters.AddWithValue("@LWHFQ_Q(i)", rbLWHFQ_Q(i)_A7.Value)
ElseIf rbLWHFQ_Q(i)_A8.Checked Then
myCommand.Parameters.AddWithValue("@LWHFQ_Q(i)", rbLWHFQ_Q(i)_A8.Value)
ElseIf rbLWHFQ_Q(i)_A9.Checked Then
myCommand.Parameters.AddWithValue("@LWHFQ_Q(i)", rbLWHFQ_Q(i)_A9.Value)
ElseIf rbLWHFQ_Q(i)_A10.Checked Then
myCommand.Parameters.AddWithValue("@LWHFQ_Q(i)", rbLWHFQ_Q(i)_A10.Value)
End If
Next i
我的研究告訴我,這是不可能做到我沒有一些特殊的編碼想要什麼。我已經在其他地方看到了有關這些類型的問題的數組的提及,但是我對數組並不熟悉,以瞭解它們在這種情況下的工作方式。
我只需要創建21套If ... Else語句? :(
這裏的HTML是什麼樣子的一個問題,如果該事項:
<tr class="statement220">
<th><label for="rbLWHFQ_Q1_A1">1. Causing swelling in your ankles or legs?</label></th>
<td title="0" >
<input id="rbLWHFQ_Q1_A1" name="rbLWHFQ_Q1" type="radio" value="0" runat="server" />
</td>
<td title="1" >
<input id="rbLWHFQ_Q1_A2" name="rbLWHFQ_Q1" type="radio" value="1" runat="server" />
</td>
<td title="2" >
<input id="rbLWHFQ_Q1_A3" name="rbLWHFQ_Q1" type="radio" value="2" runat="server" />
</td>
<td title="3" >
<input id="rbLWHFQ_Q1_A4" name="rbLWHFQ_Q1" type="radio" value="3" runat="server" />
</td>
<td title="4" >
<input id="rbLWHFQ_Q1_A5" name="rbLWHFQ_Q1" type="radio" value="4" runat="server" />
</td>
<td title="5" >
<input id="rbLWHFQ_Q1_A6" name="rbLWHFQ_Q1" type="radio" value="5" runat="server" />
</td>
</tr>
順便說一句,我知道RadioButtonLists,但在這種情況下,我需要的樣式單選按鈕一種特殊的方式並不能得到它的工作時,ASP呈現列表項。
更新,以顯示我用它在我的代碼 我不知道StackOverflow上如何與問候顯示的東西是如何工作的你,但我只是想補充一點,以防其他人來這裏尋找答案asically,我用下面的代碼:
Dim radioButtons()() As HtmlInputRadioButton = { _
New HtmlInputRadioButton() {rbLWHFQ_Q1_A1, rbLWHFQ_Q1_A2, rbLWHFQ_Q1_A3, rbLWHFQ_Q1_A4, rbLWHFQ_Q1_A5, rbLWHFQ_Q1_A6}, _
New HtmlInputRadioButton() {rbLWHFQ_Q2_A1, rbLWHFQ_Q2_A2, rbLWHFQ_Q2_A3, rbLWHFQ_Q2_A4, rbLWHFQ_Q2_A5, rbLWHFQ_Q2_A6}, _
...
}
我創建與無線電按鈕組名稱的數組:
Dim radioButtonGroupNames() As String = { _
"@LWHFQ_Q1", _
"@LWHFQ_Q2", _
...
}
然後在我對於...循環我使用:
For i = 0 To 20
If radioButtons(i)(0).Checked Then
myCommand.Parameters.AddWithValue(radioButtonGroupNames(i), radioButtons(i)(0).Value)
ElseIf radioButtons(i)(1).Checked Then
myCommand.Parameters.AddWithValue(radioButtonGroupNames(i), radioButtons(i)(1).Value)
ElseIf radioButtons(i)(2).Checked Then
myCommand.Parameters.AddWithValue(radioButtonGroupNames(i), radioButtons(i)(2).Value)
ElseIf radioButtons(i)(3).Checked Then
myCommand.Parameters.AddWithValue(radioButtonGroupNames(i), radioButtons(i)(3).Value)
ElseIf radioButtons(i)(4).Checked Then
myCommand.Parameters.AddWithValue(radioButtonGroupNames(i), radioButtons(i)(4).Value)
ElseIf radioButtons(i)(5).Checked Then
myCommand.Parameters.AddWithValue(radioButtonGroupNames(i), radioButtons(i)(5).Value)
End If
Next i
謝謝!這是我需要的。對於那些閱讀,該行需要閱讀「Dim radioButtons()()As HtmlInputRadioButton = {_」。只是一個小細節。 – Richard 2010-01-11 20:54:59