none
请教一下Page对象的生存周期问题。 RRS feed

  • 问题

  •  

    Page对象是不是每次PostBack就生成了一个新的Page对象呢。

     

    比如我在Page对象的后台页面中写了

     

    public partial class TestPageLife : System.Web.UI.Page
    {
        Test1 test;
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                test = new Test1();
                ..............

               1. 对GridView1等进行了DataSet的绑定
            }
        }
        protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
        {
            使用test;
        }
    }

    在方法中使用test就会出现空指针异常。这个应该就是说明Page对象是另一个新的对象了。但是我有一点不明白,就是在

    1 中 绑定DataSet到GridView1,那GridView1这个对象应该也属于以前的Page对象吧,PostBack出了新的对象后,GridView1也应该是新的对象中的属性了,那为什么绑定的东西还在呢?

     

    2008年12月25日 15:14

答案

  • 是的,服务器与客户端是断开的,每次访问都是新的,但有ViewState来存储一些视图方面的数据,所以数据会重新加载生成界面


    在方法中使用test就会出现空指针异常。?
    你的
    test = new Test1();是放在 if (!IsPostBack)实例化的,PostBack之后没有进行实例化,所以就没有了,所以为null啊


    2008年12月26日 0:20
    版主

全部回复

  • 是的,服务器与客户端是断开的,每次访问都是新的,但有ViewState来存储一些视图方面的数据,所以数据会重新加载生成界面


    在方法中使用test就会出现空指针异常。?
    你的
    test = new Test1();是放在 if (!IsPostBack)实例化的,PostBack之后没有进行实例化,所以就没有了,所以为null啊


    2008年12月26日 0:20
    版主
  •  

    哦。原来GirdView1等这些对象是放在ViewState中保存起来了的啊。

    2008年12月26日 0:24