我在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环境中执行此操作?
答案 0 :(得分:4)
OnClick
是Button
的服务器端事件。所以你不能写:
OnClick="this.disabled=true; btnSubmit_Click"
OnClick
仅接受服务器端事件处理程序的方法名称。
如果您要处理客户端按钮单击事件以防止用户多次单击它,请使用OnCLientClick
:
OnCLientClick = "this.disabled=true;"
您还必须将UseSubmitBehaviour
设置为false
。
答案 1 :(得分:-4)
您需要使用客户端JavaScript。一种方法是利用asp.net按钮控件的OnClientClick属性。
这是服务器端,将在PageLoad / Postback上执行 -
MyButton.Enabled = false;