//我实现的目的是:
//单击服务器按钮控件"确定"后, 一,该按钮先变灰,二,接着执行后台程序,可单击后,只变灰,不执行后台程序,请问如何解决?
//我是在后台这样写的代码:
if (!IsPostBack)
            {
                btnFind.Attributes.Add("onclick", "javascript:stopButton()"); //放在变灰但不执行后台代码
            }
//后代代码
protected void btnFind_Click(object sender, EventArgs e)
        {      // btnFind.Attributes.Add("onclick", "javascript:stopButton()"); //尝试加这里不执行而执行后台代码
            string inputIp1 = TextBox1.Text;
            string inputIp2 = TextBox2.Text;
            string inputMask = DropDownList1.Text;
            string community3 = tbCommunity.Text;            if (inputIp1 == string.Empty || inputIp2 == string.Empty)
            {
                Response.Redirect("../AutoRegistration/AutoDetection.aspx");
            }

解决方案 »

  1.   

    防止用户重复提交,最好用个验证码。像你这样做,可以加个隐藏的按钮btn2,调用的方法也为btnFind_Click(),在js里stopButton()中,加上
    btn2.click();
      

  2.   

    一般来说点了button页面要刷新以后才会出现新的样式...并且在刷新这前执行了后台代码...所以你最好用ajax来做...
      

  3.   

    你要不在按钮上面加一个默认隐藏的 DIV,点击按钮,先显示层,然后再执行代码。
      

  4.   

     protected void Button1_Click(object sender, EventArgs e)
        {
            Button1.Enabled = false;
        }