扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
ASP.NET怎么防止重复提交!
如何防止用户连续点击多下BUTTON后将数据插入到数据库中
加一个hidden。生成表单时,生成一个唯一的之。
在保存真实数据之前,看该hidden的值是归属的表单是否已经提交过。
禁止按钮也可以刷新,你可以在点击按钮禁卡按钮,设置页面过期,并后跳转到另外一个页面,
可以使用令牌来达到功能。在服务器保存一布尔值在Session中,在提交是验证Session值。
第一次点击后,将Button.Enable = false;数据存储完后,在类似这样的语句后面 conn.Close(); 加上一句 Button.Enable=true;
类似这样
Button1_Click(object sender,EventArgs e)
{
Button1.Enable =false;
SaveData();//假设这个方法是保存数据的,执行完保存,把Enable启用即可。
Button1.Enable = true;
}
人家说的是如何防止多次单击Button,没说是 aspx 页面。
if your Button control doesn't need to set OnClientClick property, you can just do this:
<asp:Button ID="SearchButton" runat="server" Text="查詢" OnClientClick="this.disabled=true;this.form.submit();" UseSubmitBehavior="false" />
else if your Button Control need to set OnClientClick property:
OnClientClick="return confirm('您確定要修改嗎?');"
you should use JavaScript or jQuery to avoid dummy users' double clicking, like this:
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>未命名頁面 </title>
<%-- 以下可用
<style type="text/css">
.disable
{
border-style:none;
border-width: thin;
background-color:Transparent;
color: #CCCCCC;
cursor:wait;
}
</style>
<script type="text/javascript" language="javascript">
function DisableButton()
{
document.getElementById("Button1").className = "disable";
document.getElementById("Button1").value = '正在提交.';
document.getElementById("Button1").onclick=Function("return false;");
return true;
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Button ID="Button1" runat="server" Text="Button(JS,CSS)" />
</form>
</body>
</html>
xx.aspx.cs
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Button1.Attributes.Add("onclick", "return DisableButton();");
}
}
}
if your Button control doesn't need to set OnClientClick property, you can just do this:
<asp:Button ID="SearchButton" runat="server" Text="查詢" OnClientClick="this.disabled=true;this.form.submit();" UseSubmitBehavior="false" />
else if your Button Control need to set OnClientClick property:
OnClientClick="return confirm('您確定要修改嗎?');"
you should use JavaScript or jQuery to avoid dummy users' double clicking, like this:
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>未命名頁面 </title>
<%-- 以下可用
<style type="text/css">
.disable
{
border-style:none;
border-width: thin;
background-color:Transparent;
color: #CCCCCC;
cursor:wait;
}
</style>
<script type="text/javascript" language="javascript">
function DisableButton()
{
document.getElementById("Button1").className = "disable";
document.getElementById("Button1").value = '正在提交.';
document.getElementById("Button1").onclick=Function("return false;");
return true;
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Button ID="Button1" runat="server" Text="Button(JS,CSS)" />
</form>
</body>
</html>
xx.aspx.cs
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Button1.Attributes.Add("onclick", "return DisableButton();");
}
}
}
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者