无法结合按钮禁用和代码隐藏功能(JavaScript +代码隐藏)

时间:2017-10-25 07:34:10

标签: javascript c# asp.net webforms

点击Insert - 按钮时,它可以执行任何其他操作。但我不希望用户能够多次点击该按钮,因此我想在按下它后将其禁用。

<asp:Button ID="Insert" runat="server" Text="Send" OnClick="Insert_OnClick" 
  OnClientClick="this.disabled=true; showLoading(this);" />

合并Insert_OnClick和&#34; disable&#34;时,函数Insert_OnClick不会运行,因为它会以某种方式首先禁用按钮,因此代码隐藏功能不会因为这个原因。

我还试图在showLoading js-function中禁用自己按钮,同样的行为。

任何想法如何在按钮被禁用时运行代码隐藏功能?

2 个答案:

答案 0 :(得分:2)

您需要在后面的代码中禁用它。即使您在点击后确实禁用了它,使用javascript进行的更改仍然会在PostBack后撤消。

protected void Button1_Click(object sender, EventArgs e)
{
    Insert.Enabled = false;
}

或者在OnClientClick上设置超时?也许那会奏效。

OnClientClick="setTimeout(function () { this.disabled=true; }, 10);"

答案 1 :(得分:0)

如果可能,我将更改Submit行为。

该方法的问题在于,前端代码发生在后端提交之前,并且如果在后端提交之前禁用了按钮,则它将无法调用后端功能。

相反,我将使用其他方法,例如使用webMethod或提交整个表单。

使用web方法,您将可以在前端完成一些处理,而后端完成处理

整个提交过程中,您都必须使用page_load事件