我是初学者,今天突然发现如此一个问题:     private bool Edit;
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Session["a"] == null)
        {
            Session["a"] = 11;
            Button1.Text = "增加";
            Edit = false;
        }
        else
        {
            Button1.Text = "修改";
            Edit = true;
        }    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        if (Edit == true)
        {
            Button1.Attributes.Add("onclick", "return confirm('修改状态')");
            Response.Write("修改");
        }
        else
        {
            Button1.Attributes.Add("onclick", "return confirm('增加状态')");
            Response.Write("增加");
        }
        
    }
我预测的事件发生是这样的:
   第一次load页面,点按钮后应该出现增加状态的对话框提示.再一次点击再出现修改状态提示.但实现上的情况却是第一次无反应,只是在页上write了一个修改(看上去是执行了一次page_load),是什么回事?

解决方案 »

  1.   

    页面在每一次打开的时候都会运行page_load的,其它事件只有在触发时才会运行,比如点击按钮.
      

  2.   

    那为什么我点第一次的时候没反应呢?而是去执行page_load事件呢?
      

  3.   

    判断页面是第一次加载还是回递再加载的,用IsPostBack属性来判断下
      

  4.   

    页面load,则session["a"]不为null,第一次点击button,先执行page_load,
                Button1.Text = "修改";
                Edit = true;
    然后执行Button1_Click
                Button1.Attributes.Add("onclick", "return confirm('修改状态')");
                Response.Write("修改");
      

  5.   

    每次加载页面的时候都会先去执行page_load事件的,然后才去执行button按钮事件。如果page_load事件中只希望第一次加载的时候执行的代码,则用IsPostBack属性来判断
      

  6.   

    不管你点多少次,page_load都在Button1_Click之前执行
      

  7.   

    页面load,则session["a"]不为null,第一次点击button,先执行page_load,
                Button1.Text = "修改";
                Edit = true;
    然后执行Button1_Click
                Button1.Attributes.Add("onclick", "return confirm('修改状态')");
                Response.Write("修改");============================
    并没有   Button1.Attributes.Add("onclick", "return confirm('修改状态')");
      

  8.   

    不管你点多少次,page_load都在Button1_Click之前执行
    =====================================
    真的假的?有相关资料吗?
      

  9.   

    不管你点多少次,page_load都在Button1_Click之前执行
    =====================================
    是这样的。如果要控制一下的话,就要用IsPostBack,这样IsPostBack里面的代码就不执行了
      

  10.   

    干吗非要加一个bool变量呢,直接判断Button1.Text就不会有问题了
      

  11.   

    page_load在其他一切事件之前执行
      

  12.   

    你一开始session 一定有初值你在page_load 上加个response.write session["a"] 看看是不是有初值
    你的问题应该不是ispostback的问题,因为每次load叶面你都要执行下面的语句