禁用/启用按钮

时间:2011-01-19 19:38:51

标签: c# asp.net

我在ASP .Net工作。我需要能够单击一个按钮,禁用它,启动代码并执行一些功能,一旦完成,再次启用该按钮。由于我们使用的是UpdatePanel,因此在这个项目中没有发布回发。关于我能够成功使用此语法在Page_Load函数后面的代码上禁用它:

btnConnect.Attributes.Add("onClick", "document.body.style.cursor = 'wait';this.disabled = true;" + ClientScript.GetPostBackEventReference(btnConnect, string.Empty) + ";");

这会禁用该按钮并允许执行后面的代码。一旦后面的代码中运行的函数完成,我就无法弄清楚如何重新启用按钮。有没有办法捕获后面的代码完成?

3 个答案:

答案 0 :(得分:1)

您是否可以使用jQuery?考虑这样的流程:

  • 点击,禁用按钮
  • 根据需要调用/ POST到ASP.NET URL
  • 在URL调用返回时重新启用该按钮。根据需要更新页面元素,重定向,警报。

答案 1 :(得分:0)

禁用后可以使用超时方法:

var that = this; //pointer to button
window.setTimeout(function() { document.body.style.cursor = '';that.disabled = false; }, 1000);

此方法也可用于防止双回发。

或者更新面板完成后会触发Sys.WebForms.PageRequestManager.endRequest事件。添加一个事件处理程序以重新启用该处的按钮作为另一种选择。

答案 2 :(得分:0)

除了以上......

是的,您正在使用UpdatePanel,但正在发生PostBack。

因此,在提交按钮事件中,成功处理完成后,删除上面添加的onClick的属性,您是否尝试在后面的代码中启用按钮,然后在UpdatePanel上发出Update()?