2009-12-15 110 views
5

在Asp.NET aspx页面中,有一个用于保存数据的按钮,当用户点击这个按钮时,我想: 1.立即禁用此按钮 2.然后调用函数Save()中的代码将数据保存回DB 3.然后再次启用此按钮。如何运行同一按钮的客户端和服务器端代码?

我做如下内容:

  1. JS功能在apsx:

    功能DisableSave(){ saveButton =的document.getElementById( '<%= btnSave.ClientID%>'); saveButton.disabled = true; 返回false; }

  2. 按键脚本:

    < --- ASP:按钮ID = “btnSave” 按需= “按钮命令” 的CommandName = “保存” RUNAT = “服务器” 文本= “保存” 的OnClientClick =” javascript:DisableSave();“/>

  3. 在函数Save()(应该由CommandName调用)后面的代码中,设置Save按钮启用回。

但是当我运行代码时,只能禁用保存按钮,后面的代码没有发生。

如何解决?

+0

你使用IE吗? – 2009-12-15 20:14:08

+0

即使我删除返回false;仍然得到相同的结果,没有代码在呼叫。 IE/FF相同的结果。 – KentZhou 2009-12-15 20:26:08

+0

嗨,大家好,我的按钮在UpdatePanel内部进行部分更新。东西看起来不像预期的那样。 – KentZhou 2009-12-15 20:40:19

回答

3

显然,某些浏览器(IE)在禁用时不会处理按钮的提交操作。我在Firefox中尝试过这种方式,但它确实回传,但IE浏览器没有运气。一种解决方法,虽然不提供用户反馈,但将做OnClientClick="this.onclick= function() { return false; }"。这将防止更多的回传发生。

编辑:onclick需要是一个功能不是一个字符串。

+0

这会完全停止发回。无法调用函数后面的代码。 – KentZhou 2009-12-15 20:33:56

+0

这不会阻止第一次发生回发。如果用户开始疯狂点击,它将阻止浏览器再次发布更多时间。 – 2009-12-15 20:39:27

2

问题是,在onclick事件中使用JavaScript禁用按钮将停止发生回发。

一个简单的解决方法在this CodeProject文章中说明。

相关问题