如何为同一个按钮运行客户端和服务器端代码?

Ken*_*hou 5 asp.net

在Asp.NET aspx页面中,有一个数据保存按钮,当用户点击此按钮时,我想:1.立即禁用此按钮2.然后调用函数Save()后面的代码将数据保存回DB 3.然后再次启用此按钮.

我做了如下:

  1. apsx中的JS函数:

    function DisableSave(){saveButton = document.getElementById('<%= btnSave.ClientID%>'); saveButton.disabled = TRUE; 返回false; }

  2. 按钮脚本:

    <--- asp:Button ID ="btnSave"OnCommand ="Button_Command"CommandName ="Save"runat ="server"Text ="Save"OnClientClick ="javascript:DisableSave();"/>

  3. 在函数Save()(假设由CommandName调用)后面的代码中,设置Save按钮enable back.

但是当我运行代码时,只禁用保存按钮,没有发生代码隐藏调用.

怎么解决?

Jus*_*sel 3

显然,如果按钮被禁用,某些浏览器(IE)将不会处理按钮的提交操作。我在 Firefox 中尝试过,它确实进行了回发,但在 IE 中却没有成功。一种解决方法虽然不提供用户反馈,但可以执行 OnClientClick="this.onclick= function() { return false; }". 这至少可以防止更多的回发发生。

编辑: onclick 需要是一个函数而不是字符串。