ASP.NET Web控件事件与自动回发机制详解
1. Web控件事件与自动回发基础
在Web开发中,HTML服务器控件存在一个主要局限,即其有用事件集有限,仅有两个。例如,触发回发的HTML控件(如按钮)会引发ServerClick事件,输入控件提供的ServerChange事件则要等到页面回发时才会触发。
ASP.NET服务器控件是一种巧妙的设计。ASP.NET页面代码在服务器端处理后,以普通HTML形式发送给用户。页面处理的事件顺序如图所示:
graph LR
A[Web页面请求] --> B[ASP.NET根据.aspx代码创建页面对象]
B --> C[ASP.NET运行Page.Load事件处理程序]
C --> D[ASP.NET运行其他触发的事件处理程序]
D --> E[最终页面渲染]
E --> F[返回HTML输出]
F --> G[页面回发]
G --> A
有些事件(如按钮的Click事件)能立即触发,因为按钮点击会导致页面回发,这是HTML表单的基本约定。但其他一些操作虽会触发事件却不引发回发,比如用户更改文本框中的文本(触发TextChanged事件)或在列表中选择新项(触发SelectedIndexChanged事件)。若想对这些事件做出响应,在无回发的情况下代码无法运行。
ASP.NET为此提供了两种选择:
- 等待下一次回发 :例如,若要响应列表中的SelectedIndexCha
超级会员免费看
订阅专栏 解锁全文
827

被折叠的 条评论
为什么被折叠?



