预防按钮的多次点击,预防恶意刷新

<asp:button runat="server" ID="btn" text="Button" OnClick="aa_Click" />
public void page_load(Object obj,EventArgs e) 
{ 
  btn.Attributes.Add("onclick","state=true;"); 
  StringBuilder sb=new StringBuilder(); 
  sb.Append("if (!state) return;"); 
  sb.Append("var button=document.getElementById('btn');"); 
  sb.Append("button.value='Please Wait...';"); 
  sb.Append("document.body.style.cursor='wait';"); 
  sb.Append("button.disabled=true;"); 
  string strScript="<script>"; 
  strScript=strScript +"var state=false;"; 
  //将函数绑定到页面的onbeforeunload事件: 
  strScript=strScript +"window.attachEvent('onbeforeunload',function(){" +sb.ToString()+ "});"; 
  strScript=strScript +"</"+"script>"; 
  Page.RegisterStartupScript("onbeforeunload",strScript); 
} 
    protected void aa_Click(object sender, EventArgs e)
    {
        //模拟长时间的按钮处理 
        System.Threading.Thread.Sleep(2000);
        Response.Write("<script>alert('bbbbbb!!');" + "</" + "script>"); 
    }
posted @ 2008-07-02 11:05  superfang  阅读(255)  评论(0编辑  收藏  举报