我是一个为我们公司工作的新手程序员。我正在开发一个Quiz引擎进行培训。我有一些约90%的示例代码。我只需要调整一些东西。这是我正在做的。在asp.net中打开新窗口VB
这是用VB.net建立的ASP.net。我有一系列问题需要从数据库中提取(使用内置的SQLDataSource绑定),目前它所做的是提出问题,选择答案,然后单击下一步。列表等等......直到结束,数据库包含一个列,指出正确的答案是什么,当你点击下一步时,它将你的答案与正确的答案比较,存储它,然后继续下一个问题。最后,它会吐出你正确的答案和不正确的答案
然而,这就是我想要做的。当用户选择一个答案并点击下一个,它立即打开一个小的新窗口(不是弹出窗口)但在同一页面上的一个窗口),立即“分级”的问题,并在该窗口中,显示它是否正确..这样的事情:
If selected answer = correctAnswer then
"That is correct"
Else
"THat is not correct. The correct answer is B"
End if
新窗口将只包含底部角落的“确定”按钮。按下“确定”后,它会关闭新窗口并处理“下一步”按钮编程的其余部分。下面是按钮:
<asp:Button ID="buttonNext" runat="server" Text="Next" /> </td>
这里是Questions.aspx.VB代码与附和:
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles buttonNext.Click
' Save off previous answers
Dim dr As System.Data.DataRowView
dr = CType(questionDetails.DataItem, System.Data.DataRowView)
' Create Answer object to save values
Dim a As Answer = New Answer()
a.QuestionID = dr("QuestionOrder").ToString()
a.CorrectAnswer = dr("CorrectAnswer").ToString()
a.UserAnswer = answerDropDownList.SelectedValue.ToString()
Dim al As ArrayList
al = CType(Session("AnswerList"), ArrayList)
al.Add(a)
Session.Add("AnswerList", al)
If questionDetails.PageIndex = questionDetails.PageCount - 1 Then
' Go to evaluate answers
Response.Redirect("results.aspx")
Else
questionDetails.PageIndex += 1
End If
If questionDetails.PageIndex = questionDetails.PageCount - 1 Then
buttonNext.Text = "Finished"
End If
End Sub
如果你能提供我需要的代码,这将是有帮助的。先谢谢您的帮助。
Tim
你需要重新考虑你的过程中一点点,主要有两个原因 1.这将使测验远容易 2.用户将不得不回答这个问题,点击下一步,看看他们是否正确,然后再次点击下一步或其他按钮,以获得下一个问题 如果你真的想这样做,那么我建议你看看在使用自定义的验证器时,但如果你没有人会永远'失败'测试。 – Stuart 2012-01-11 00:50:49