代码改变世界

asp.net 应用开发(Page_load 及 页面生命周期)遇到的问题及总结

2012-07-03 17:27  秋日愚夫  阅读(545)  评论(0编辑  收藏  举报

典型场景:单击某产品后的删除按钮,把产品ID传递到删除产品处理页面。

 

起初如下,我用了一个在类中的字段保存第一次加载获取到的值,用于传递给提交表单。但只要一回发,字段值就没了。

        string UserId = string.Empty;
        //保存获取的ID 

protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { this.UserId = Request.QueryString["id"]; } }

 

然后,像上篇博文那样,把获取值保存至ViewState中,轻松搞定。

 protected void Page_Load(object sender, EventArgs e)
        { 
            if (!IsPostBack)
            {
                ViewState["UserId"] = Request.QueryString["id"];
            }
          
        }

 

疑问:

1,如果说每次打开一个页面链接,会实例化一个页面对象的话。那么每次按提交按钮,触发回发事件,就会重新实例化这个页面对象吗?

2,如果上一条是成立的,那么IsPostBack是如何做到在多个对象中判断回发的(肯定不是static)?

 

总结:..........