【发布时间】:2011-05-03 10:15:13
【问题描述】:
我想在单击按钮后立即禁用它,因此用户不能连续两次单击它并连续两次触发 OnClick_Event。 btn.Enabled = false 似乎并没有立即奏效。有没有其他方法可以做到这一点?
谢谢,
丹尼斯
【问题讨论】:
我想在单击按钮后立即禁用它,因此用户不能连续两次单击它并连续两次触发 OnClick_Event。 btn.Enabled = false 似乎并没有立即奏效。有没有其他方法可以做到这一点?
谢谢,
丹尼斯
【问题讨论】:
您所做的是在回发后禁用它,因此您的按钮将在浏览器收到响应时呈现的页面中被禁用。
改为在客户端使用 JavaScript:
var button = document.getElementById('yourButton');
button.disabled = true;
如果您在回发到服务器时遇到问题,请查看这篇文章:How to disable an ASP.NET button when clicked。
【讨论】:
function disable()
{
var button = document.getElementById('<%= Button1.ClientID %>');
button.disabled = true;
}
<asp:Button ID="Button1" OnClientClick="disable();">
【讨论】:
你可以通过javascript实现这个
function Disable(btn)
{
btn.disabled = true;
}
并将其添加到您的按钮 OnClientClick="javascript:return Disable(this);"
【讨论】:
你可以简单地通过这个代码来处理它。假设,这里有一个名为btnAdd的按钮。当你点击这个按钮时,它会因为执行它的相应代码而被禁用。我的意思是由于回发它会被禁用。
if (!IsPostBack)
{
btnAdd.Attributes.Add("onclick", "this.disabled=true;" + GetPostBackEventReference(btnAdd).ToString());
}
【讨论】:
在按钮的 Onclick 事件中所有功能的末尾写上btn.Enabled= false。它将执行所需的操作。
【讨论】:
禁用按钮已引发问题。您不会触发服务器端事件。所以最好通过隐藏按钮来寻找替代方案(是的,显示一些友好的错误消息“工作”、“处理”等)。解决如何disable asp.net button on postback 会有所帮助。谢谢。
【讨论】:
YourButton.Enabled = false;
if(!YourButton.Enabled)
{
\\Your Code Here
YourButton.Enabled = true;
}
希望这会有所帮助;)
【讨论】: