我有一個ASP.NET Web窗體(C#),用戶填寫,它有一對夫婦的下拉,導致後背上,一些導致回發確認名單。我也使用了幾個不同的更新面板。一個面板對用戶輸入可見,另一個面板在用戶單擊提交併將數據添加到數據庫後出現。確認面板(最後一個面板)也向用戶顯示確認編號。ASP.NET Web窗體和F5刷新問題
最後一個面板顯示器之後,我想阻止該網頁重新加載當用戶按F5或刷新。原因是,我不希望用戶不小心點擊刷新或F5並丟失確認號碼和消息。當用戶按下F5時,瀏覽器將其解釋爲想要加載新頁面,並且在那時會話被清除(如下面的代碼所示)。
我的第一個想法是重印信息和確認號碼,並確保保持它的面板保持可見。我打算在下面的代碼的else部分這樣做 - 但由於有多個回發,並且它們都觸發頁面加載,所以這是行不通的,除非有確定回發是否是表單的結果元素或f5鍵。
protected void Page_Load(object sender, EventArgs e)
{
try
{
if (!IsPostBack)
{
Session.Clear();
GetList();
}
}
catch (Exception ex)
{
//Do something();
}
}
我見過的建議使用Javascript幾個不同的崗位,但我避免如果可能的話,在偏遠的機會,有人已經關閉了JavaScript。
這裏是程序的流程: 用戶打開的形式,在contactpanel領域填充和點擊提交。這些字段使用ASP.NET服務器驗證控件進行驗證,如果一切正常,則將數據發送到數據庫並返回確認編號。最後,將contactpanel設置爲visibility = false,並將confirmationpanel設置爲visibility = true。
希望這會有所幫助。感謝任何建議。
感謝,
我99%肯定,使用更新面板需要Javascript ......如果它工作圍繞它通過刷新整個頁面,那麼你真的最好重新設計你的網站是如何工作的,如果必須工作,而JavaScript的 – Earlz
我認爲禁用JavaScript的人可以忍受偶然按下F5的問題,這種情況經常不會發生......您試圖通過服務器端解決方案來解決客戶端問題,通常以難以維護的代碼。 – Vache
使用Javascript。根據您的目標受衆,您可能需要執行Javascript檢測,並向沒有它的訪問者發出警告。如果這是2005年,我會說是的,你的擔心是有效的,但沒有。人們需要Javascript;對每個人都好。但是,說實話,我不明白Javascript是如何幫助你解決問題的。如果人們刷新頁面,除非你想出另一個解決方案,否則它仍然會重置它。 –