2009-08-21 39 views
2

當用戶在編輯模式下使用Detailsview或Formview,並試圖離開當前頁面時,我想要捕獲這個並強制保存任何更改,就像用戶點擊了Update LinkBut​​ton。我怎樣才能做到這一點?Asp.Net強制保存detailsview/formview

+0

除了下面的答案,我發現了一系列有關此主題的文章:http://aspnet.4guysfromrolla.com/articles/042005-1.aspx – dsteele 2009-08-22 14:53:52

回答

3

你不能可靠地做到這一點。如果他們的計算機完全崩潰,或者將電源線拔出,請考慮這種情況。用戶可以離開一個頁面的方式有很多種。

但是,您可以放入一些保護措施。在頁面上的任何鏈接上,您都可以勾選事件以在離開前進行保存。也許你也可以在每次控制焦點變化之後嘗試保存。

你可以做的另一件事是掛鉤window.onbeforeunload事件,並給他們一個確認信息,詢問他們是否確定他們想離開頁面,就像當你有未保存的答案時一樣。但是這個事件沒有辦法強制保存。

+0

我們使用第三種方法,在onbeforeunload上掛鉤事件並確認用戶希望不保存就離開(我們使用髒標誌來知道什麼時候有未保存的數據,所以我們並不總是顯示確認信息)。 – mbillard 2009-08-22 00:07:26

+0

感謝你們倆。我知道我無法覆蓋所有可能的情況,但最有可能的是,在我的應用程序中,用戶忘記單擊「保存」時,他移動到另一個頁面。 – dsteele 2009-08-22 00:32:47