我得到了flip()
的输出,我不知道我做错了什么。我使用findcontrol方法在Gridview中查找ID并将它们声明为radiobuttons,然后我尝试使用if语句为已选中的单选按钮分配值,然后将该值输出到标签。
vb代码
0
源代码
Protected Sub btnSubmit_Click(sender As Object, e As EventArgs) Handles btnSubmit.Click
Dim numOutput As Integer
For Each row As GridViewRow In GridView1.Rows
Dim qID As Label = row.FindControl("QuestionID")
Dim rd1 As RadioButton = TryCast(row.FindControl("answer1"), RadioButton)
Dim rd2 As RadioButton = TryCast(row.FindControl("answer2"), RadioButton)
Dim rd3 As RadioButton = TryCast(row.FindControl("answer3"), RadioButton)
Dim rd4 As RadioButton = TryCast(row.FindControl("answer4"), RadioButton)
If rd1.Checked = True Then
numOutput = 1
ElseIf rd2.Checked = True Then
numOutput = 2
ElseIf rd3.Checked = True Then
numOutput = 3
ElseIf rd4.Checked = True Then
numOutput = 4
End If
Next
lblOutput.Text = numOutput
End Sub
答案 0 :(得分:0)
我不知道您的代码有什么问题,因为我无法调试您的代码以查看您的VB代码会发生什么。如果您不知道如何调试代码,请查看有关调试的this YouTube video。
我建议您将所有复选框放在面板上并循环显示该控件的所有项目。我去检查每个控件是否是dataset
。如果是,请将其投放到RadioButton
并检查RadioButton
是否已选中。如果是,则计数器可以显示在您的标签中。
检查计数器计数女巫RadioButton
,也是您可以在标签上显示的输出。有关我的工作的更多信息,请参阅代码。
不要忘记在计数器上添加一个,否则它将保持相同的值。
这是VB代码:
RadioButton
将标签放在面板外面。请注意,如果标签位于面板内,则对后面的代码没有影响。循环将跳过它们,因为标签不是单选按钮的类型。但是当你向应用程序添加一些功能时,标签就在外面了。
这是ASP代码:
Dim counter As Integer = 0
For Each contr As Control In pnlAnswers.Controls 'loop over each control on the panel
If TypeOf contr Is RadioButton Then 'Check if contr is a RadioButton
RadioButton rdb = CType(contr, RadioButton) 'if yes cast it to a RadioButton
If rdb.Checked Then 'If checked
lblOutput.Text = counter.ToString() 'Place the tag value on the output label
Return
End If
counter += 1
End If
Next
P.S。:我现在不需要在之前的更新中添加的标记。
我也删除了这行代码:
<asp:Label runat="server" ID="QuestionID" Text='<%# Eval("QuestionID")%>' />
<asp:Label runat="server" ID="Question" Text='<%# Eval("Question")%>' /><br />
<asp:panel ID="pnlAnswers" runat="server">
<asp:RadioButton GroupName="a" Text='<%# Eval("answer1")%>' runat="server" ID="answer1" /><br />
<asp:RadioButton GroupName="a" Text='<%# Eval("answer2")%>' runat="server" ID="answer2" /><br />
<asp:RadioButton GroupName="a" Text='<%# Eval("answer3")%>' runat="server" ID="answer3" /><br />
<asp:RadioButton GroupName="a" Text='<%# Eval("answer4")%>' runat="server" ID="answer4" />
</asp:panel>
我找不到您使用此行的任何行,因此找到您的标签Dim qID As Label = row.FindControl("QuestionID")
太过分了。
很久以前,我已经使用过VB.NET和ASP.NET网页表单,所以如果代码无效,请评论我。
<强> #SOreadytohelp 强>