惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

B
Blog
Know Your Adversary
Know Your Adversary
博客园 - 叶小钗
雷峰网
雷峰网
大猫的无限游戏
大猫的无限游戏
M
MIT News - Artificial intelligence
量子位
A
About on SuperTechFans
The Register - Security
The Register - Security
F
Fortinet All Blogs
Microsoft Azure Blog
Microsoft Azure Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
IT之家
IT之家
博客园 - 聂微东
Blog — PlanetScale
Blog — PlanetScale
Hugging Face - Blog
Hugging Face - Blog
J
Java Code Geeks
有赞技术团队
有赞技术团队
阮一峰的网络日志
阮一峰的网络日志
云风的 BLOG
云风的 BLOG
人人都是产品经理
人人都是产品经理
Hacker News: Ask HN
Hacker News: Ask HN
T
The Exploit Database - CXSecurity.com
Vercel News
Vercel News
Stack Overflow Blog
Stack Overflow Blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
博客园 - 司徒正美
NISL@THU
NISL@THU
V2EX - 技术
V2EX - 技术
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Schneier on Security
Schneier on Security
博客园 - 三生石上(FineUI控件)
T
The Blog of Author Tim Ferriss
AWS News Blog
AWS News Blog
The GitHub Blog
The GitHub Blog
C
Cisco Blogs
T
Tenable Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
C
Cyber Attacks, Cyber Crime and Cyber Security
V
Vulnerabilities – Threatpost
美团技术团队
L
LangChain Blog
Google DeepMind News
Google DeepMind News
腾讯CDC
P
Privacy International News Feed
Spread Privacy
Spread Privacy
D
DataBreaches.Net
Engineering at Meta
Engineering at Meta
S
Security @ Cisco Blogs

博客园 - goodbaby

辞职了 爱上无聊 读程序有感 把网通的网关接口程序重写了 深深陷入困境 我的技术和观点 我的AOP初步 静态和动态控件回递数据的处理差别 membership and roleship 我的asp.net 2.0初体验 一点技术,一点生活 简单体验多层应用 基于服务的架构 变化,感触 又可以进自己的blog了 浅谈验证码 浅谈基于角色的安全 浅谈数据库里的自引用 简单的URL重写
浅谈asp.net UI
goodbaby · 2004-12-01 · via 博客园 - goodbaby

Posted on 2004-12-01 23:14  goodbaby  阅读(877)  评论()    收藏  举报

asp.net提供了很多基础控件,和灵活的扩展机制,为UI提供了高效的开发环境。控件
被组织成一棵树,控件有两种类型,包括子节点的组合,和不包括节点的叶子,由.aspx Handdle
从根节点递归遍历,调用Render(HttpContext hc),这个过程生成html流发送到客户端。
你拖上去的控件,在.aspx文件中有对应的asp.net标签对应,服务程序要解析回递的html
从中生成对象树。那么动态添加的控件呢,我们都知道,要使动态控件可用,要手动把他们
添加到树上。除了UI的呈现,这里还要处理回递数据(在joycode上有深入的讨论),你拖上去的控件,在Init()后,服务程序
会调用控件的ProcessPostData(),这里从客户端post回的数据会刷新保存在视图里的值,并且
会触发定制事件。那么动态控件呢,如果你是在Page_Load()中加进去的,那么很幸运,在Page_Load()
之后还会有一次ProcessPostData()的调用,也就是说在Page_Load()里你对控件的访问是不会有正确
数据的,但是在象Button_Click()这样的事件就可以得到正确的数据。组合节点都有Add()方法,他是一个
递归的过程,生成子树,动态控件被添加到根节点(HtmlForm)后,从视图中解析出子节点,并分别调用
他们的Add() (Add方法调用他的AddChild方法),如果你已经手工添加了,那么就不再添加,以保证
结构的正确性,这些可以从.net的源代码中看出,其实asp.net这种处理方式应该是Composite的一个应用,这是
我对asp.net UI 的一点理解。好了,不成熟的一点体会,若你有不同的观点,或是我哪里讲的不对,请告诉我。