2010-08-25 101 views

回答

0

不确定有关aspxbutton具体,但一般来说,你会在控件的onclick属性上有这样的东西。

onclick="this.disabled=true;" 
1

在客户端,您可以在单击它时将其禁用。

在服务器端,我最喜欢的方法通常是发送一个随机数与表单数据,然后拒绝重复的随机数。

与往常一样,客户端以快速(希望)友好的方式进行验证,即使客户端代码遇到一些意外的浏览器问题,或者有人故意搞砸,服务器端也会进行确认。

+0

如果您在点击时禁用客户端,则不会再触发服务器端的“OnClick”方法。 – 2013-01-07 08:23:15

+0

@UweKeim与往常一样,客户端以快速和(希望)友好的方式进行验证,即使客户端代码遇到一些意外的浏览器问题,或者有人故意将事情搞乱,服务器端也会进行确认。 – 2013-01-07 09:47:11

+0

我的观点是,如果你禁用ASPxButton控件的客户端,你会打破控件的功能:-) – 2013-01-07 09:52:21

2

这可以用下面的代码来完成:

var buttonClicked = false; 

function MyBtnClick(s,e){ 
    if(buttonClicked) return; 
    buttonClicked = true; 
    // do something 
} 

<ASPxButton id="btn" runat="server"> 
    <ClientSideEvents Click="function(s,e) { MyBtnClick(s,e); } "/> 
</ASPxButton> 
0

在运行更新查询简单地添加到代码的启动代码:

ButtonNameOrID.Enabled = False // add ; to end if C# 

然后,在结束代码,请添加:

ButtonNameOrID.Enabled = True // add ; to end if C# 

这将禁用/启用C#或VB代码中的按钮。

+1

这不起作用,因为请求是在客户端更新之前在服务器上处理的。所以这个按钮不会在客户端被禁用。 – Hanno 2013-01-07 08:31:39