基于Tag的存储 口运行时解析Tags 创建控件实例 ■设置属性初始值 命名空间引实对1设置 liststyle属性艮务器控件 < List]id-11 iststyle=number] runat=server iTems> <acme:ListItem>first item</acme: ListItem> <acme: ListItem>second item</acme: listItem> <acme:ListItem>third item</acme: ListItem> k/Items </acme:List>对H设置ems属性
基于Tag的存储 运行时解析Tags ◼ 创建控件实例 ◼ 设置属性初始值 <acme:List id=l1 liststyle=number runat=server> <Items> <acme:ListItem>first item</acme:ListItem> <acme:ListItem>second item</acme:ListItem> <acme:ListItem>third item</acme:ListItem> </Items> </acme:List> 命名空间引用Class to create 实例对IDl1设置 liststyle 标记作为属性服务器控件 对l1设置 Items属性
运行时使用控件 口控件是代码中的NE对象 口在页面事件中处理控件 Page_Load, Button_cick,等等 void page_Load (object send, EventArgs e)t 11.tems.Add(“ fourth item”); 11. Forecolor Color Blue;
运行时使用控件 控件是代码中的.NET 对象 在页面事件中处理控件 ◼ Page_Load, Button1_Click, 等等. void Page_Load(object send, EventArgs e) { l1.Items.Add(“fourth item”); l1.ForeColor = Color.Blue; }
页面/控件处理 第一次载入 实例化每个控件,设置为初始状态,加 入控件树 Init 运行用户代码,测试! pOstbAck条 Load 件来数据绑定到第一批值 PreRender| Create Child Controls0确保控件准 Save ViewState 备好被演绎 控件存储状态值(如果与初始值不同) Render 每个控件将自身演绎到响应中 Dispose 释放页面和所有控件
页面/控件处理 第一次载入 Init Load PreRender SaveViewState Render Dispose 实例化每个控件, 设置为初始状态, 加 入控件树 运行用户代码, 测试 !IsPostBack条 件来数据绑定到第一批值 CreateChildControls() 确保控件准 备好被演绎 控件存储状态值(如果与初始值不同) 每个控件将自身演绎到响应中 释放页面和所有控件
页面/控件处理 Post back Init Load viewstate 从 viewstate载入控件的上一次状态 Load Posted数据(HTTP表单中)传递到 相应控件 Postback data 按照在树中的次序触发控件事件,除 Postback events 了导致Post的控件.它最后触发 PreRender Save viewState Render Dispose
页面/控件处理 Post back Init Load PreRender SaveViewState Render Dispose 从ViewState载入控件的上一次状态 Posted 数据 (HTTP 表单中) 传递到 相应控件 按照在树中的次序触发控件事件, 除 了导致Post的控件. 它最后触发. LoadViewState Postback data Postback events
控件属业
控件属性