顺序与回传详解

世家都清楚,在 ASP.NET 上开展 Web
编程中精晓页面中各事件的进行顺序是不行实用的,可以一箭穿心的将团结的黄金年代对管理程序放到钦点的岗位,以便赢得不错的结果。

永利集团304com,当页面被提交央求第三个法子长久是布局函数。您可以在构造函数里面初步一些自定义属性或对象,可是这个时候因为页面还没被全然起初化所以有个别会稍为约束。极其地,您需求接纳HttpContext对象。当前得以接纳的对象包涵QueryString,
Form以致Cookies集合,还大概有Cache对象。注意:在布局函数里是分化意利用Session的。

初始化

  下多少个将实行的法子是AddParsedSubObject方法,那个艺术将助长全体独立的控件并把页面组成三个控件集合树,这些方式平日被部分高档的页面模板解决方案(Page
Template Solutions卡塔尔重写以便增加页面内容到页面模板(Page
Template卡塔尔(قطر‎中有的极其的控件中。这几个点子递归应用到全部的页面控件及相应的的各样子控件,全体的控件都以在此个措施中最先最初的开头化。

当页面被交付央求第一个章程长久是构造函数。您能够在结构函数里面最初一些自定义属性或对象,然而那时因为页面还一直不被统统起始化所以有个别会稍稍限定。极度地,您需求运用
HttpContext 对象。当前得以利用的目的包含 QueryString, Form 甚至 Cookies
集合,还也可以有 Cache 对象。注意:在结构函数里是不许使用 Session 的。

  页面类中下三个将实行的形式是DeterminePostBackMode。这一个措施允许你校订IsPostBack的值及有关的风浪。借使你供给从数据库中加载ViewState这几个格局将特意有用,因为ViewState独有在IsPostBack为实在景况下才会举行还原。重回空将会导致抑遏实行非回传,重临Request.Form则压迫实践三个回传。除非在非正规景况下,不然并不建议去操作那些,因为这一个还有恐怕会影响其余的风浪。

下一个将实践的秘籍是 AddParsedSubObject
方法,那些措施将助长全部独立的控件并把页面组成三个控件集结树,那些格局通常被部分高级的页面模板实施方案(Page Template SolutionsState of Qatar 重写以便加多页面内容到页面模板(Page
Template)中有的特种的控件中。那几个点子递归应用到全部的页面控件及相应的的各种子控件,全体的控件都以在这里个艺术中初露最初的开首化。

  下二个就要实施的法子是OnInit方法,日常这是第三个实在被利用的点子。那些法子触发时,全部页面定义中的控件推行开始化,这象征全数在页面中定义的值应用到对应的控件上。不过,ViewState和传颂的值还不会接受到控件上,因而,任何被代码或客户改造的值还尚无被恢复到控件上。这几个格局日常是最佳的创造、重成立动态控件的好地方。

页面类中下多少个将实行的措施是 DeterminePostBackMode。这么些方法允许你订正IsPostBack 的值及有关的平地风波。借令你必要从数据库中加载 ViewState
那一个点子将专门有用,因为 ViewState 独有在 IsPostBack
为确真实情情状下才会举办还原。再次来到空将会以致强逼实践非回传,重回Request.Form
则强逼实践八个回传。除非在特种情形下,不然并不建议去操作这几个,因为那个还有只怕会影响别的的平地风波。

  二、复苏及加载

下四个就要实行的主意是 OnInit
方法,日常那是第二个实在被接受的章程。那个措施触发时,全体页面定义中的控件施行开始化,那代表全部在页面中定义的值应用到对应的控件上。然而,ViewState
和传播的值还不会利用到控件上,因而,任何被代码或顾客退换的值还不曾被苏醒到控件上。这么些点子常常是最棒的创造、重创造动态控件的好地方。

  下三个方法,LoadPageStateFromPersistenceMedium只会在页面被回传的时候才会被实践。假使因为使用Session或自定义存款和储蓄情势,您修改了背后将在提到的熏陶ViewState保存方法的点子SavePageStateToPersistenceMedium,则这几个法子需求被重写。暗中同意的兑现中ViewState是生龙活虎种Base64格式编码,而且被保存在页面包车型大巴隐敝域中,您能够选用那篇小说中谈起的措施改正ViewState按以上三种办法保留。注意:这一个措施并未真正加载ViewState到页面或页面控件中。

回复及加载

  当获得ViewState后,下二个措施LoadViewSate,将以递归的方式苏醒ViewState到页面及顺序页面控件或子控件中。这些点子试行后,种种控件都将复苏到上叁次的意况,不过客户提交的数目还并未有行使到控件上,因为他俩不是ViewState的朝气蓬勃局地。那一个情势首要用于恢复生机您在其余事件中动态变化的控件的值,他们的值是您手动保存在ViewSate中,并且现在早已失效。

下叁个主意, LoadPageStateFromPersistenceMedium
只会在页面被回传的时候才会被实行。借使因为使用 Session
或自定义存款和储蓄情势,您订正了前面即将提到的震慑 ViewState 保存方法的艺术
SavePageStateToPersistenceMedium,则那些艺术需求被重写。暗中认可的落到实处中
ViewState 是风度翩翩种 Base64
格式编码,而且被保留在页面包车型客车掩盖域中,您可以应用那篇小说中谈到的法子修改ViewState 按以上两种艺术保留。注意:这些点子并从未真的加载 ViewState
到页面或页面控件中。

  下二个措施是ProcessPostData,那些措施也一直以来是回传的时候才会被实行,何况不容许被重写,那几个是页面基类的私房方法。那一个方法通过相称控件的名称恢复生机相应的用户提交的控件的值,到这一步意味着任何页面都早就被完全苏醒了。唯风流洒脱要记住的是有所动态控件的开创必需在这里个主意早前。那个措施也是记录前边的转移事件的方式。

当获得 ViewState 后,下一个主意 LoadViewSate,将以递归的艺术苏醒ViewState
到页面及顺序页面控件或子控件中。这几个方法试行后,每一种控件都将还原到上一遍的景象,可是客商提交的多寡还不曾接收到控件上,因为她俩不是
ViewState
的风姿洒脱有的。这么些主意首要用以复苏您在其余交事务件中动态变化的控件的值,他们的值是你手动保存在
ViewSate 中,何况现在已经失效。

  下多少个办法是OnLoad方法,常常那是用得最多的点子,因为那些法子是页面生存期第三个苏醒了全数值之处。大很多代码依照决断IsPostBack来调节是或不是再一次安装控件状态。您也能够在这里个措施中调用Validate并且检查IsValid的值。也足以在此个艺术中开创动态控件,何况该控件的具备的方式都会被实行以追上圈套前页面包车型大巴状态包含ViewSate,然而不包含回传的值。

下二个办法是
ProcessPostData,那些办法也后生可畏律是回传的时候才会被施行,并且不准被重写,那个是页面基类的个体方法。那一个主意通过匹配控件的称谓苏醒相应的客户提交的控件的值,到这一步意味着全体页面都早已被完全恢复生机了。唯豆蔻梢头要深深记住的是拥有动态控件的创导必得在这里个法子早先。这一个法子也是记录前边的更换事件的措施。

  三、事件管理

下三个办法是 OnLoad
方法,平时这是用得最多的章程,因为那个措施是页面生存期第一个苏醒了全数值的地点。大多数代码依照判定IsPostBack 来决定是不是再度设置控件状态。您也能够在此个方法中调用 Validate
而且检查 IsValid
的值。也得以在这里个法子中开创动态控件,并且该控件的全数的办法都会被试行以追受愚前页面包车型地铁情形包蕴ViewSate,可是不包蕴回传的值。

  下一个办法还是ProcessPostData,实际上就是前一个主意的另贰回调用,它依旧是只在回传的时候施行何况由于是私人商品房方法不可以被重写。如若您是第一回看页面包车型大巴运作轨道也许会感觉这几个办法有些多余。但实际这些点子是少不了的因为在OnLoad中开创的动态控件也需求他们回传的值。任何在这里之后创办的控件将能够收获他们的ViewState,可是不可能再一次拿到得他们的回传的值,并且不会触发任何值退换事件(Change
伊芙nt卡塔尔国。

发表评论

电子邮件地址不会被公开。 必填项已用*标注