我是一個爲我們公司工作的新手程序員。我正在開發一個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