科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道应用软件ASP.NET怎么防止重复提交!

ASP.NET怎么防止重复提交!

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

ASP.NET怎么防止重复提交!

作者:csdn 来源:csdn 2009年12月14日

关键字: ASP.NET 问答

  • 评论
  • 分享微博
  • 分享邮件

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领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章