如何在10秒后启用LinkBut​​ton Asp.net?

时间:2017-06-16 15:28:11

标签: javascript c# asp.net asplinkbutton

当我点击LinkBut​​ton protected void lbUpVoteUndo_Click(object sender, EventArgs e) { lbUpVoteUndo.Enabled = false; if(/* check for 10 seconds */) { lbUpVoteUndo.Enabled = true; } } 时,它应该禁用10秒钟。我在c#代码隐藏中尝试过它。有没有其他方法可以做同样的事情?

git ls-remote -h ssh://git@github.com/toto/repo # timeout=10
FATAL: hudson.plugins.git.GitException: Command "git ls-remote -h ssh://git@github.com/toto/repo" returned status code 128:
stdout: 
stderr: Permission denied (publickey).
fatal: Could not read from remote repository.

2 个答案:

答案 0 :(得分:2)

Javascript可以为您完成此操作。这两行代码将为您完成:

function DisableFor10Seconds() {
      document.getElementById("<% lbUpVoteUndo.ClientID %>").disabled = true;
      setTimeout(function(){document.getElementById("<% lbUpVoteUndo.ClientID %>").disabled = false;},10000);
}

自从我使用.NET webforms以来已经有一段时间了但是在你的控制下我相信你可以这样做:

<asp:LinkButton ID="lbUpVoteUndo" OnClientClick="Disablefor10Seconds();" />

我想补充说,10秒是很长时间,您是否希望用户等待10秒钟?例如,如果用户点击刷新,则该按钮将再次启用。无论发生什么情况,如果你想让它被禁用10秒钟,你应该在Session或Cache中存储一个标志,然后可以用计时器设置一个客户端元素。

答案 1 :(得分:1)

使用javascript函数 -

在HTML中,使用按钮控件添加以下代码 -

UseSubmitBehavior="false" OnClientClick="this.disabled='true'; this.value='Please wait...';"

在.CS cdoe中,在按钮点击事件中使用此功能 -

System.Threading.Thread.Sleep(10000);

谢谢:)