不行啊 static int i = 0;
    protected void Page_Load(object sender, EventArgs e)
    {
        
    }
    
    protected void Button1_Click1(object sender, EventArgs e)
    {
        i = i + 1;
        
        Response.Redirect("Default2.aspx");
    }
    protected void Button2_Click(object sender, EventArgs e)
    {
        Response.Write(i.ToString());
    }

解决方案 »

  1.   

    用JavaScript控制<input type="submit" onclick="this.disabled=true"/>
      

  2.   

    ref 
    http://www.cnblogs.com/juejue1984/archive/2008/08/15/1268852.html
    http://www.codeproject.com/KB/aspnet/oneclickbutton.aspx
    http://www.cnblogs.com/me-sa/archive/2008/07/25/loadingcontrol.html
      

  3.   

    try 獲取異常,然後忽略資料重復的錯誤
      

  4.   

    protected void Page_Load(object sender, EventArgs e) 

      if (ViewState["aa"] != null) 
      { 
          //页面不是第一次 
          ViewState["aa"] = "2"; 
      } 
      else 
      { 
          //页面第一次 
            ViewState["aa"] = "1"; 
          //在这里执行你的操作 
        } 
    } 如果ViewState不行,你就把所有ViewState["aa"]改成Session["aa"],只是Session在服务器上占资源
      

  5.   

    1、提交成功后转到其它页面
    2、提交后清空页面数据,再次提交的时候一般有必填项的检验<asp:Button ID="btnSave" runat="server" CssClass="btn1" Text="保 存" OnClick="btnSave_Click" OnClientClick="this.value='数据提交中……';this.disabled=true;" UseSubmitBehavior="False" />
     protected void btnSave_Click(object sender, EventArgs e)
        {
    //yao code
    }
      

  6.   

    我项目中用的: 
    <input id="Button3" type="button" style="font-size:12px;" onclick="document.all.Button1.click();document.all.Button3.disabled=true;" value="登录" />
     
      <asp:Button ID="Button2" runat="server" Font-Size="12px" Text="取消" OnClick="Button2_Click" />
      

  7.   

    static int i = 0;
        protected void Page_Load(object sender, EventArgs e)
        {
            
        }
        
        protected void Button1_Click1(object sender, EventArgs e)
        {
            i = i + 1;
            
            //Response.Redirect("Default2.aspx");
            Response.Write("<script>window.location.href=window.location.href;</script>");
        }
        protected void Button2_Click(object sender, EventArgs e)
        {
            Response.Write(i.ToString());
        }
      

  8.   

    很多方法呀
    比如:提交之后转向其他页面。
    2.提交后清空所有text框值,禁空值提交
    3.提交后使按钮只读。
    ......
    很多方法的。楼主可以通过多方面实验下,找到自己喜欢的方式
      

  9.   

    1、添加一个Hidden控件,提交后把值设为yes,再次提交时判断这个值是不是yes
    2、viewstate也可以,但是如果页面禁止了viewstate就不行了
      

  10.   

    不要使用ASP.NET的OnClientClickC#页面加入:btnSubmit.Attributes["onclick"] = "disablebtn();";
    ASPX页面加入:<script language="javascript" type="text/javascript">
    <!--
    function disablebtn() {
    document.forms[0].btnSubmit_act.disabled=true;
    return true;
    }
    -->
    </script>
    这样就可以搞定了,或者你把JS写在C#里面也可以,用Page.ClientScript.RegisterClientScriptBlock 注册一下,这样麻烦。
      

  11.   

    楼主的应该是
    this.form.submit();
    导致重复提交了disabled=true 就可以禁用了,这个时候由于是submit类型,表单其实已经提交了
      

  12.   

            <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" OnClientClick="this.form.submit();this.disabled=true" UseSubmitBehavior="False" /> 试过,可以实现
      

  13.   

    刚处理完和lz一样的问题,我的可能情况和lz的不同,我是直接到数据库中去看有没有重复,重复就提示重复,不提交了
      

  14.   

    可以用验证码的话 就用验证码,验证码存在服务器端。不然不管你怎么折腾 都能重复提交。用Fiddler类的工具模拟POST,GET请求,半小时就把你数据库弄爆。不信的话,给个表单提交页面试试。记住 用JS来做表单验证,纯粹就是扯淡,只是在体验度上非常好而已。关键位置,服务端必须另外做判断。
      

  15.   

    最常规的做法就是 Post=>Redirect=>Get
      

  16.   

    .net 防止重复提交 
      

  17.   


    对于SQL Server来说,你设置相应的字段是唯一键索引的,数据库就可以检查了。不用自己编程检查。