WebForm生命周期

WebForm生命周期1 关于 WebForm 环境下启用了 autopostback 的问题 注意 启用了 autopostback 的服务器控件要在修改值后按 enter 或 tab 或鼠标点击才会触发 Page Load 这一步会造成误解 如果是一个启用了 autopostback 的服务器控件 一个 button 可能会出现点击两次 button 才触发 button 事件的感觉 但实际上第一次点击是触发 autopostback 的控件事件重新提交

1.关于WebForm环境下启用了autopostback的问题,注意,启用了autopostback的服务器控件要在修改值后按enter或tab或鼠标点击才会触发Page_Load,这一步会造成误解,如果是一个启用了autopostback的服务器控件+一个button,可能会出现点击两次button才触发button事件的感觉,但实际上第一次点击是触发autopostback的控件事件重新提交触发了Page_Load及其自身事件的原因。
这种交互体验不好。
使用一般的判断+viewstate处理了此问题
2.关于return
return仅出现于函数体中,执行return语句会中断跳出整个大函数体,而不在乎return是否在函数体中的小函数体中。
3、关于WebForm下的生命周期
浏览器提出请求-Page_Init事件触发,渲染页面框架-Page_load事件触发(不管页面是第一次被请求还是作为回发部分请求,都会触发)-验证控件Validate方法-立即反应事件_doPostBack()方法-呈现-清除
以DataInput程序comprehensive为例
第一次请求aspx:Page_Load-!isPostBack,而当使用激活了autoPostback的控件时,则为Page_Load,此时不执行!isPostBack,表示他已是回发重要的point:
凡涉及请求,都会再度执行Page_Load函数(WebForm臃肿的原因之一),而一般!isPostBack放在里面,只有那些第一次通过URL连接访问页面的才会执行
,因此,!isPostBack中的内容多为第一次加载页面时需要初始化提供的数据或其他比如验证,而且仅需要执行一次就可以
 protected void Page_Load(object sender, EventArgs e) { Context.Response.Cache.SetCacheability(HttpCacheability.NoCache); string msg = new AntiSqlAttack(Request).CheckSqlAttach();//防止sql注入攻击 if (!msg.Equals("N")) { LTSysAttackInfo.WriteAttackInfo(Request.ServerVariables["REMOTE_ADDR"], Request.ServerVariables["URL"].ToLower(), Request.ServerVariables["Remote_Host"], StringProcess.StrCutFrom(msg, BasicType.AttMesString)); Response.Write(StringProcess.StrPreCut(msg, BasicType.AttMesString)); return; } if (!IsPostBack) { //1.!IsPostBack等价于IsPostBack=false,表示页面form第一次加载,即没有发生过GET/POST请求后的页面,此时应当对登录的用户进行核对并初始化一些东西 //2.当form表单post提交时就不是第一次回传,此时不用再核对登录用户 if (CheckUser(Convert.ToString(Session["oaid"]))) { Initialize(); } else Response.Redirect(ConfigOwn.LoginPage); } }
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/208924.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 上午10:27
下一篇 2026年3月19日 上午10:27


相关推荐

  • #3 working with data stored in files && securing your application (PART II)

    #3 working with data stored in files && securing your application (PART II)

    2021年9月8日
    49
  • Activity与Activity间隔activity跳转之Intent.FLAG_ACTIVITY_CLEAR_TOP用法「建议收藏」

    Activity与Activity间隔activity跳转之Intent.FLAG_ACTIVITY_CLEAR_TOP用法「建议收藏」1.如果已经启动了四个Activity:A,B,C和D。在DActivity里,我们要跳到BActivity,同时希望Cfinish掉,可以在startActivity(intent)里的intent里添加flags标记,如下所示:Intent intent = new Intent(this, B.class);    intent.setFlags(Intent.FLAG_ACTI…

    2022年7月17日
    17
  • 三角函数公式和图像大全[通俗易懂]

    三角函数公式和图像大全[通俗易懂]初等函数的图形幂函数的图形指数函数的图形对数函数的图形三角函数的图形反三角函数的图形各三角函数值在各象限的符号三角函数的性质反三角函数的性质三角函数公式两角和公式倍角公式三倍角公式半角公式和差化积积化和差诱导公式万能公式其它公式其他非重点三角函数双曲函数公式一…

    2025年11月14日
    6
  • python移位运算,python移位运算

    python移位运算,python移位运算title:python移位运算date:2018-10-1219:55:22tags:#标签-PYTHONpython移位运算密码算法程序设计实践选的SHA-1。在写的过程中遇到一丢丢关于python移位的问题,记录一下。SHA-1其中第一步需要填充消息。简单阐述一下sha1填充消息的过程:如输入消息“123”,先转成ascii码——313233,消息长度为3*8=24。即001100…

    2022年7月13日
    18
  • 媒体类型mediaType

    媒体类型mediaType媒体类型决定浏览器将以何种形式对资源进行解析。常见的媒体格式类型(/)如下:text/html:HTML格式text/plain:纯文本格式image/gif:gif图片格式application/pdf:pdf格式application/octet-stream:二进制流数据(如常见的文件下载)…复制代码主要的使用场景如下:HTTP头部的ContentType、伪协议的data:Content-TypeContent-Type实体头部用于指示资源的MIME类型mediatype。

    2022年5月26日
    39
  • 点云常见几种算法(详细教程)

    点云常见几种算法(详细教程)

    2020年11月8日
    270

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号