【问题标题】:How to run client and server side code for same button?如何为同一个按钮运行客户端和服务器端代码?
【发布时间】:2010-12-26 23:15:26
【问题描述】:

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

我做了如下:

  1. apsx中的JS函数:

    函数禁用保存(){ saveButton = document.getElementById(''); saveButton.disabled=true; 返回假; }

  2. 按钮脚本:

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

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

如何解决?

【问题讨论】:

  • 即使我删除 return false;仍然得到相同的结果,调用后面没有代码。 IE/FF 相同的结果。
  • 大家好,我的按钮位于 UpdatePanel 中,用于部分更新。有些事情看起来不像预期的那样。

标签: asp.net


【解决方案1】:

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

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

【讨论】:

  • 这将完全停止回发。无法调用函数背后的代码。
  • 这不会阻止回发第一次发生。如果用户开始疯狂地点击,它将阻止浏览器回发更多次。
【解决方案2】:

问题是在 onclick 事件中使用 JavaScript 禁用按钮会阻止回发发生。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-02
    • 2016-08-02
    • 2016-12-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多