Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 使用服务器端验证防止双击_Asp.net_Asp.net 2.0 - Fatal编程技术网

Asp.net 使用服务器端验证防止双击

Asp.net 使用服务器端验证防止双击,asp.net,asp.net-2.0,Asp.net,Asp.net 2.0,我试图阻止用户双击我正在更新的页面的提交按钮。问题是,在我们继续之前,必须进行服务器端验证,以确定用户是否必须进行任何更新。我目前在我的表单提交事件中有以下代码 <asp:Button ID="SubmitPayment" runat="server" OnClientClick="this.disabled='true';" UseSubmitBehavior="false" OnClick="SubmitPayment_Click" Text="Submit" /> 我必须如何

我试图阻止用户双击我正在更新的页面的提交按钮。问题是,在我们继续之前,必须进行服务器端验证,以确定用户是否必须进行任何更新。我目前在我的表单提交事件中有以下代码

<asp:Button ID="SubmitPayment" runat="server" OnClientClick="this.disabled='true';" UseSubmitBehavior="false" OnClick="SubmitPayment_Click" Text="Submit" />
我必须如何重新启用此控件?这是在VisualStudio2005中。提前谢谢

-编辑- 我使用的方法如下。我添加了一个额外的诱饵按钮,该按钮被禁用,并且显示css属性设置为“无”。然后,我使用javascript在OnClientClick事件中隐藏提交按钮并显示诱饵按钮。最后,服务器端方法的结尾将更新按钮上的css属性,以便在之后隐藏和显示它们

代码段如下所示。再次感谢你的帮助

function PreventDoubleClick()
    {
        var sp = document.getElementById("SubmitPayment");
        var db = document.getElementById("DecoyButton");
        sp.style.display = "none";
        db.style.display = "inline";
    }

<asp:Button ID="SubmitPayment" runat="server" OnClientClick="javascript:PreventDoubleClick();" UseSubmitBehavior="false" OnClick="SubmitPayment_Click" Text="Submit" />
<asp:Button ID="DecoyButton" Enabled="false" runat="server" style="display:none;" Text="Please Wait..."/>

DecoyButton.Style.Add("display", "none");
SubmitPayment.Style.Add("display", "inline");
函数防止双击()
{
var sp=document.getElementById(“SubmitPayment”);
var db=document.getElementById(“DecoyButton”);
sp.style.display=“无”;
db.style.display=“inline”;
}
DecoyButton.Style.Add(“display”,“none”);
SubmitPayment.Style.Add(“显示”、“内联”);

我以前也遇到过类似的问题,我想出的最佳解决方案是隐藏按钮并用“请稍候”(或验证)消息替换它。如果验证失败,您可以再次显示按钮

So SubmitPayment.Attributes.Add(“disabled”、“true”);或SubmitPayment.Attributes.Remove(“禁用”、“错误”);不做这项工作吗?你有一个奇怪的问题。对于双击所有东西的白痴该怎么办(不可否认,这不是他们的错,而是桌面界面设计师的错)。不能说这是我最喜欢的方法,但这是我能找到的唯一有效的方法。谢谢你的建议。事实证明,我在帖子中添加的解决方案还有一个问题。如果运行多次,诱饵按钮将永久保留在页面上。有没有办法解决这个问题?
function PreventDoubleClick()
    {
        var sp = document.getElementById("SubmitPayment");
        var db = document.getElementById("DecoyButton");
        sp.style.display = "none";
        db.style.display = "inline";
    }

<asp:Button ID="SubmitPayment" runat="server" OnClientClick="javascript:PreventDoubleClick();" UseSubmitBehavior="false" OnClick="SubmitPayment_Click" Text="Submit" />
<asp:Button ID="DecoyButton" Enabled="false" runat="server" style="display:none;" Text="Please Wait..."/>

DecoyButton.Style.Add("display", "none");
SubmitPayment.Style.Add("display", "inline");