2010-03-13 11 views
1

嗨,在線測驗使用ASP點網

我需要開發一個將有MCQs的在線測驗網站。我想用一個數字尋呼機在每個頁面上出現一個問題,以便用戶可以前後移動。

我嘗試使用FormView來顯示問題和RadioButtons。我創建了一個QANS類,它可以保存用戶選擇的答案,以回答他回答的問題,以便我可以總結總分。現在

,我面臨的問題是如下:

讓用戶選擇一個單選按鈕,說R,在PageIndex的,說我,然後去一些其他的頁面,說K.當用戶返回到第I頁,沒有選中任何RadioButton。 我試着在Page_Load()中添加用於設置RadioButton的Checked屬性true的代碼,但它沒有幫助。我也嘗試了與PageIndexChanged和PageIndexChanging相同的事件,但RadioButton沒有被檢查。

爲特定問題選擇的RadioButton已被存儲,並且能夠打印使用Response.Write()的哪一個,但是我無法保留RadioButton Checked。 這個怎麼做?

回答

1

你應該能夠使在頁面生命週期的

protected override void OnPreRender(EventArgs e) 

事件檢查單選按鈕

+0

謝謝。 我不得不重寫OnPreRenderComplete方法。 –

0

您可以保存在會話中選定的控件的狀態和往返後重新填充它們。

這很奇怪,它回發後失去狀態。有沒有在你的on_load或pageIndexChanging或任何瘋狂的代碼?

0

從我所瞭解的情況來看,您必須在頁索引中保留單選按鈕的選中狀態。您可以使用ViewState,因爲它可以保留頁面回傳中的數據。

是這樣的: -

//定義問題ID列表試圖 名單questionIdsAttempted;

//列表添加到ViewState中 如果(的ViewState [ 「QuestionIdsAttempted」]!= NULL){ questionIdsAttempted =新名單() 的ViewState [ 「QuestionIdsAttempted」] = questionIdsAttempted }

//當用戶嘗試提問時,將問題ID添加到列表中 questionIdsAttempted.Add(qId);

//後面添加列表視圖狀態 的ViewState [「QuestionIdsAttempted」] = questionIdsAttempted

並在單選按鈕的checked屬性頁面加載,你可以調用與當前的問題ID和一個函數函數將從viewstate獲取列表,並根據列表中是否存在id返回true或false。

當然,您需要根據程序的流程檢查各個地方視圖狀態的可空性。

讓我知道