代码如下:
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Session["GetClickLinkButtonName"] == null)
            Session["GetClickLinkButtonName"] = "Button1_Click";        Response.Write(Session["GetClickLinkButtonName"].ToString());    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        Session["GetClickLinkButtonName"] = "Button1_Click";    }
    protected void Button2_Click(object sender, EventArgs e)
    {
        Session["GetClickLinkButtonName"] = "Button2_Click";    }为什么Button2需要按2次才显示Button2_Click,我现在就想让它按一次就要显示,请问要如何实现呢?

解决方案 »

  1.   

    if(!IsPostBack)
    {
     if (Session["GetClickLinkButtonName"] == null) 
                Session["GetClickLinkButtonName"] = "Button1_Click"; 
       Response.Write(Session["GetClickLinkButtonName"].ToString());
    }
      

  2.   

      protected void Page_Load(object sender, EventArgs e) 
        { 
           if(!IspostBack)
            {
            if (Session["GetClickLinkButtonName"] == null) 
                Session["GetClickLinkButtonName"] = "Button1_Click";         Response.Write(Session["GetClickLinkButtonName"].ToString()); 
         }    }
      

  3.   

    要显示信息,应该写在Page_PreRender中,而不是Page_Load中。其实这很明显,看看先后触发什么事件执行什么方法就知道,Page_Load之后是按钮,之后是Page_PreRender。把要展示的信息写在Page_Prerender中,这个逻辑本来很明显。可惜很多所谓的入门“范例”却不是这样的,给人造成错觉。
      

  4.   

    protected void WriteClickLinkButtonName()
    {
    Response.Clear();
    if (Session["GetClickLinkButtonName"] != null)
    {
    Response.Write(Session["GetClickLinkButtonName"].ToString());
    }
    }
    protected void Page_Load(object sender, EventArgs e)
    {
    if (Session["GetClickLinkButtonName"] == null)
    {
    Session["GetClickLinkButtonName"] = "Button1_Click";
    }
    WriteClickLinkButtonName();
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
    Session["GetClickLinkButtonName"] = "Button1_Click";
    WriteClickLinkButtonName();}
    protected void Button2_Click(object sender, EventArgs e)
    {
    Session["GetClickLinkButtonName"] = "Button2_Click";
    WriteClickLinkButtonName();
    }