有没有办法让asp.net页面赶上"对自己?

时间:2015-05-12 13:40:32

标签: c# asp.net code-behind

我在C#工作,我需要一个按钮,当用户点击它时立即被禁用。但是,如果我将其作为OnClick函数中的第一行

MyButton.Enabled = false;

它什么都不做。该按钮保持启用状态,直到它达到某种停止状态,无论是Catch块还是功能结束。

我想在VB / VBA中你可以使用DoEvents()并允许代码赶上自己。但是,在C#中似乎没有DoEvents方法。

这与链接的问题略有不同,因为我的OnClick代码如下所示:

OnClick="btnSubmit_Click"

该用户的OnClick代码如下所示:

onClick="this.disabled=true;
this.value='Sending…';
this.form.submit();"

当我尝试将代码更改为:

OnClick="this.disabled=true; btnSubmit_Click"

我收到了错误。

  

编译器错误消息:CS1041:预期的标识符; '这'是一个   关键字

如何在C#/ asp.net环境中执行此操作?

2 个答案:

答案 0 :(得分:4)

OnClickButton的服务器端事件。所以你不能写:

OnClick="this.disabled=true; btnSubmit_Click"

OnClick仅接受服务器端事件处理程序的方法名称。

如果您要处理客户端按钮单击事件以防止用户多次单击它,请使用OnCLientClick

OnCLientClick = "this.disabled=true;"

您还必须将UseSubmitBehaviour设置为false

阅读:Disable a button control during postback.

答案 1 :(得分:-4)

您需要使用客户端JavaScript。一种方法是利用asp.net按钮控件的OnClientClick属性。

https://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.button.onclientclick(v=vs.110).aspx

这是服务器端,将在PageLoad / Postback上执行 -

MyButton.Enabled = false;