转自:http://hi.baidu.com/trip008/blog/item/d6139ab77b5414f130add1e9.html

protected override void OnPreRender(EventArgs e)
protected override void Render(HtmlTextWriter writer)
这两个的区别。可否告知

====================================================

asp.net页面在触发各个子控件的事件之后,会递归调用控件的OnpreRender,然后(注意)递归地将控件的ViewState序列化成一个字符串,最后递归调用控件的Render输出结果(在最高层控件即page控件的Render就会把那个ViewState序列化字符串写到输出的html的隐藏字段中)。

因此,在Render中创建、改变的内容即使写入ViewState,其实也无法在页面回发之后被恢复,叶面回发之后回填的ViewState仍然是OnPreder或者之前的时候得值。

因此通常,控件的OnPrerender用来最控件的最后最后一次改变(动态生成),而在Render中仅仅用来输出html而并不改变控件自身。

另外,控件在vs设计器中的时候,并不是page对象驱动页面显示的。虽然在设计其上看上去很像asp.net应用程序处理页面的结果。起码,设计器并不调用OnPrerender,而是根据Designer标签中说明的方法来调用显示逻辑。这样你就可以让控件在设计器中表现为与运行时不同的结果。例如表格控件在设计器中就不显示所有绑定数据,而是显示自己创建的一组示例数据,以便让你有一个简洁的方式设计界面布局,同时也让连接数据库等等只有在运行时才需要的费时、可能失败的行为在设计时避免执行。

这里我想到一个常见现象。很多人已经会写自定义控件了。但是其实只了解运行时的控制机制,写出的自定义控件并不支持vs设计器的控制机制。例如这个OnPreRender在设计时并不被调用是很多人不知道的。精通编写自定义控件的人,也许仅仅让其以程序代码的方式被使用,其编写的自定义控件使用在RAD方式的时候并不好用,这是常见的。

转载于:https://www.cnblogs.com/ziling8163/archive/2009/02/17/1392255.html

【转帖】OnPreRender Render的区别相关推荐

  1. ReactDom.render和React.render的区别

    这个是react最新版api,也就是0.14版本做出的改变.主要是为了使React能在更多的不同环境下更快.更容易构建.于是把react分成了react和react-dom两个部分.这样就为web版的 ...

  2. 前端python和go_Python_前端网页+前后端交互-Go语言中文社区

    学习Python_前端网页,以一个登录页为案例 简单的 django.http.HttpResponse 可以把内容显示到网页上,本文主要记录如何使用渲染模板的方法来显示内容. HttpRespons ...

  3. datatables使用指南

    2019独角兽企业重金招聘Python工程师标准>>> 前言 之前做项目也用过datatables渲染数据表,但也是一扫而过,照着例子初始化,满足基础的搜索,翻页和排序的功能就拉倒了 ...

  4. React-引领未来的用户界面开发框架-读书笔记(一)

    这本书的主要内容都是以react v0.12为主,ES5语法,笔记中将会使用react v0.14和RS6. 第1章 react简介 1.本质上是一个状态机,它以精简的模型管理复杂的随着时间而变化的状 ...

  5. Django(二) 路由和视图

    路由定义 路由是客户端访问的url路径与视图函数间的一一映射关系.Django中的路由关系在urls.py文件中,基本格式如下: urlpatterns = [url(regex,view, kwar ...

  6. 读书笔记《React:引领未来的用户界面开发框架》

    <React:引领未来的用户界面开发框架>(GitHub 附demo版) 1.Component的创建与复合 1.1 React简介 背景介绍,全书概览 1.本质上是一个状态机,它以精简的 ...

  7. Django之--POST方法处理表单请求

    上一篇:Django之--MVC的Model 演示了如何使用GET方法处理表单请求,本文讲述直接在当前页面返回结果,并使用更常用的POST方法处理. 一.首先我们修改下page.html <!D ...

  8. 医学影像:静息态fmri数据的预处理

    文章目录 引言 静息态fmri数据的预处理 数据预处理的理论部分 静息态数据预处理的一般步骤(参考) 常用的工具 数据预处理的实践部分 引言 本文主要详细介绍了静息态fmri数据的预处理,什么是静息态 ...

  9. 手机游戏毕业设计论文

    1  绪论 1.1 手机软件现状 在信息社会中,手机及其他无线设备越来越多的走进普通百姓的工作和生活,随着信息网络化的不断进展,手机及其他无线设备上网络势在必行.但是传统手机存在以下弊端: 1.  传 ...

最新文章

  1. 一个用于录制用户输入操作并实时回放的小工具
  2. HBase概念学习(八)开发一个类twitter系统之表设计
  3. CentOS使用chkconfig增加开机服务提示service xxx does not support chkconfig的问题解决
  4. 密码学-hash加密
  5. tomcat的诡异的端口占用问题
  6. 20160512关于mac安装caffe的记录
  7. 基于java员工管理系统设计(含源文件)
  8. canvas绘图粒子扩散效果【原创】
  9. R语言爬虫系列6|动态数据抓取范例
  10. winHex创建指定大小二进制文件.bin(数据为全0或全FF或自己填充)并带winHex软件下载包
  11. HTML网页制作代码大全——中华传统文化设计题材网站(html+css)
  12. 谷歌浏览器xp32位_如何正确的配置系统的浏览器系列篇(五)——合同管理系统...
  13. JNCIS-FWV Study Guide v1.3
  14. 精心整理的ebay大数据面试题(全)
  15. 使用Xshell连接到AWS云主机
  16. python自动获取邮件数据_Python 提取数据库(Postgresql)并邮件发送
  17. Impala简介(整理)
  18. 学习人工智能需要哪些必备基础
  19. Tryton 相关软件简介及名字背后的神话
  20. Despair and Despair

热门文章

  1. 淘宝获取单笔订单信息服务端调用API及流程
  2. 2022-2028年中国演出市场深度调研与投资可行性报告
  3. pytorch学习 中 torch.squeeze() 和torch.unsqueeze()的用法
  4. LeetCode简单题之比赛中的配对次数
  5. 使用nGraph的Intel®Xeon®上的高性能TensorFlow
  6. 空间点像素索引(三)
  7. 2021年大数据Kafka(三):❤️Kafka的集群搭建以及shell启动命令脚本编写❤️
  8. Ubuntu 系统 Pycharm中无法使用中文输入法问题
  9. mysql的时间存储格式
  10. nordic 51822 sdk. timer 的使用