以下是激发的事件。我调试过,断点在第一次点击不执行。第二次点击才执行。
另外,我有做了一个页面,奇怪,那个页面的PageLoad事件被二次激发。所以以下单击事件的效果就显示了  
为什么第一次不激发,第二次点击才激发。拿到是javascript里面有问题,但是我检查了,没有发现什么。
  protected void ButtonSet_Click(object sender, EventArgs e)
    {
        try
        {
         
            GridView1.PageSize = Convert.ToInt32(TextBox1.Text.Trim());
            GridView1.DataSource = info.CreateFour(Request.QueryString["currentID"].ToString());//栏目id
            GridView1.DataBind();
            
            //Response.Write("<script language=javascript>window.location.reload();</script>");
        }
        catch (Exception E)
        {
            E.ToString();
            Response.Write("<script language=javascript>alert('您输入的数据有误!请重新输入!')</script>");
            ClientScript.RegisterStartupScript(this.GetType(), "focus", "<script language=javascript>document.getElementById('TextBox1').focus();</script>");
        }
    }

解决方案 »

  1.   

    这是我生成页面后查看源码中的两个相关控件信息,对你理解会有帮助
    <input name="TextBox1" type="text" value="5" onchange="javascript:setTimeout('__doPostBack(\'TextBox1\',\'\')', 0)" onkeypress="if (WebForm_TextBoxKeyHandler(event) == false) return false;" id="TextBox1" title="设置当前页面显示信息的数目" style="width:36px;" />
    <input type="submit" name="ButtonSet" value="设置" id="ButtonSet" />
      

  2.   

    <input name="TextBox1" type="text" value="5" onchange="javascript:setTimeout('__doPostBack(\'TextBox1\',\'\')', 0)" onkeypress="if (WebForm_TextBoxKeyHandler(event) == false) return false;" id="TextBox1" title="设置当前页面显示信息的数目" style="width:36px;" />
    <input type="submit" name="ButtonSet" value="设置" id="ButtonSet" />
    ================
    因为你第一次点击按钮的时候,实际上是触发了文本框的onchange事件(失去焦点触发),
    而该事件直接进行了form提交(javascript:setTimeout('__doPostBack()),
    也就是说此时按钮的type="submit"就不会执行提交操作了。而你第二次提交,由于文本框内容没变,所以点击按钮时文本框的onchange事件框得不到触发
    所以刚好按钮的type="submit"就会提交form,所以就响应按钮服务器事件了。
      

  3.   

    你把 PageLoad 事件 的代码发一下PageLoad 每次页面刷新都要走的