2009-08-21 42 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