65.9K
CodeProject 正在变化。 阅读更多。
Home

AJAX Dirty-Panel

2007年4月30日

2分钟阅读

viewsIcon

98131

downloadIcon

480

这是一个面板,当用户尝试在保存数据之前离开页面时,会自动显示警报。

引言

有没有用户曾经告诉你,在填写了冗长的表单后,不小心关闭了浏览器或跳转到另一个页面,忘记点击保存按钮? 我不止一次听到过这样的故事,而我的回答通常是告诉用户“好吧,你在填写表单时应该更注意。” 当然,我没有用这些话来表达,但这就是我们能说的全部了。

事实上,跟踪经典 ASP.NET 表单中更改过的字段并非易事。 由于每次回发都会触发 onbeforeunload 事件,因此没有通用的方法来确定回发是否是故意的。 因此,我们不得不编写大量的自定义 JavaScript 来管理它。

现在在 AJAX 世界中,这个限制已经消失了。 如果我们有一个 100% “ajaxified” 的页面,那么 onbeforeunload 事件只有在用户实际离开页面时才会触发。 这让我们的生活变得轻松多了。

这是一个面板,它可以自动检测面板内部是否有任何控件被更改,并在用户尝试在保存数据之前离开页面时显示警报。

点击这里 查看示例页面。

使用代码

我再次使用 Anthem.NET 库来提供 AJAX 功能。 这个 Web 控件继承自 Anthem Panel,因此你需要做的就是将所有数据输入控件放在这个面板内,并设置 OnLeaveMessage 属性。 此属性对应于用户尝试在不保存内容的情况下离开页面时将显示的消息。 当用户实际点击保存按钮时,你需要告诉面板存储新的值,这样当用户离开页面时就不会显示警报。 这通过在保存数据时调用面板的 Reset 方法来完成。

下载文件包含 Web 控件和示例页面。

结论

这是一个易于使用,但非常实用的 Web 控件,可以增强 Web 应用程序的可用性。

希望你喜欢它。

© . All rights reserved.