Preventing accidental double clicking on a button
我有一些继承自 如果用户单击两次,该按钮将触发两个服务器端事件。 我该如何预防?
我尝试通过javascript单击(在 请参阅此示例以禁用回发控制。它应该可以帮助您完成您要实现的目标。 http://encosia.com/2007/04/17/disable-a-button-control-during-postback/ 如果有一个Updatepanel和一个FormView-Template内部的按钮,我将使用以下方法:
如果当前异步回发仍处于活动状态,则会取消后续的回发。完美运作。 您不一定要显示回发时禁用的按钮。您要确保他们不会意外提交两次。因此,由于服务器端操作而禁用或隐藏按钮已经太晚了。至此,第二个请求已经在进行中。您需要使用javascript或确保服务器端代码不会运行两次。
将Button属性UseSubmitBehavior设置为false。然后创建一个禁用该按钮的OnClientClick函数。
最快最便宜的方式:
除了隐藏之外,我所做的是使用javascript交换按钮。单击第一个按钮,即可显示另一个变灰的图像。 几天前,有人在这里的某个地方说过这一点,我同意-使用javascript只是隐藏按钮而不是禁用它;您可以在其位置显示"旋转"图像,以使用户知道发生了什么。 您也可以尝试例如btnSave.Enable = false;。单击按钮时以及单击事件例程中完成按钮处理之前。如果需要重置它以启用它,请使用单独的按钮重置该按钮以重新使用。 另一种方法是设置带有验证的按钮,以便询问用户是否要保存,该按钮应两次弹出。 还有一种方法是标记第一次出现,然后为第二次设置弹出窗口,以验证第二次或后续使用。 |