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)?
总结:..........