ASP.NET中防止页面多次提交的代码实现

原文地址:http://dotnet.csdn.net/page/e4e6987b-7255-4fb4-a786-b3e65bd40d40

 

进行了一些整理,如下:

===========================================================

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script language="javascript" type="text/javascript">
        function disableOtherSubmit()
        {
            var obj = event.srcElement;
            var objs = document.getElementsByTagName('INPUT');
            for(var i=0; i< objs.length; i++)
            {
                if(objs[i].type.toLowerCase() == 'submit')
                {
                    objs[i].disabled = true;
                }
            }
        }
    </script>   
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:Button ID="Button1" runat="server" Text="Button1" />
        <asp:Button ID="Button2" runat="server" Text="Button2" />
        <asp:Button ID="Button3" runat="server" Text="Button3" />
        <asp:LinkButton ID="LinkButton1" runat="server">LinkButton</asp:LinkButton>
    </div>
    </form>
</body>
</html>

=============================================================

    protected void Page_Load(object sender, EventArgs e)
    {
        this.GetPostBackEventReference(this.Button3);

        //保证 __doPostBack(eventTarget, eventArgument) 正确注册
        if (!IsPostBack)
        {
            System.Text.StringBuilder sb = new System.Text.StringBuilder();
            sb.Append("if (typeof(Page_ClientValidate) == 'function') " +
                        "{" +
                            "if (Page_ClientValidate() == false)" +
                                "{" +
                                    "return false; " +

                                "}" +
                        "}");

            //保证验证函数的执行
            sb.Append("if(window.confirm('are you sure?')==false) return false; ");

            //自定义客户端脚本
            sb.Append("disableOtherSubmit(); ");

            // disable所有submit按钮
            sb.Append(this.GetPostBackEventReference(this.Button3));

            Button3.Attributes.Add("onclick", sb.ToString());
        }
    }

    override protected void OnInit(EventArgs e)
    {
        // // CODEGEN: This call is required by the ASP.NET Web Form Designer. //
        InitializeComponent();
        base.OnInit(e);
    }
    /// < summary>
    /// Required method for Designer support - do not modify
    /// the contents of this method with the code editor.
    /// < /summary>
    private void InitializeComponent()
    {
        this.Button3.Click += new EventHandler(Button3_Click);
        this.Load += new System.EventHandler(this.Page_Load);
    }

    private void Button3_Click(object sender, System.EventArgs e)
    {
        System.Threading.Thread.Sleep(3000);
        Response.Write("Hello world!");
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值