第三章Web服务器控件©2007iSoftStoneHoldingsLtd.AllRightsReserved.2回顾•ASP.NET页文件是含有将在Web服务器上执行代码的文件。其扩展名是.aspx或.ascx•ASP.NET页面中使用两种类型的脚本:–服务器端脚本–客户端脚本•事件处理程序实际上就是一个子程序,执行任何给定事件的相关代码•在页面加载时引发Page_Load事件•Page.IsPostback属性用于检查页面是否为首次加载•ViewState是ASP.NET中用来保存WEB控件回传时状态值的页面隐藏控件•ASP.NET代码隐藏文件使开发人员可以在C#或VisualBasic.NET类中编写控制它们的页的逻辑,这样可与HTML代码清楚地分离开来©2007iSoftStoneHoldingsLtd.AllRightsReserved.3目标•使用文本输入控件•使用控制权转移控件•使用选择控件•讨论其他控件©2007iSoftStoneHoldingsLtd.AllRightsReserved.4Web控件-简介控件是用于在Web窗体执行所有任务的工具控件定义Web窗体的外观MicrosoftVisualStudio.NET提供了两种可用于Web窗体的控件,分别为:Web服务器控件HTML控件©2007iSoftStoneHoldingsLtd.AllRightsReserved.5添加Web服务器控件使用Web窗体设计器添加Web服务器控件:Web服务器控件面板双击或单击并拖动Web服务器控件,将其添加到Web窗体©2007iSoftStoneHoldingsLtd.AllRightsReserved.6Web服务器控件的类型内部控件文本输入控件控制权转移控件选择控件容器控件其他控件–用于某些特定用途的专用控件©2007iSoftStoneHoldingsLtd.AllRightsReserved.7文本输入控件•TextBox控件–用作将由用户或程序员输入的文本的占位符,输入的文本可以用程序读取•Label标签-用作将由程序员在设计时或运行时输入的文本的占位符。在此控件内不能进行用户交互有两种类型的文本输入控件:©2007iSoftStoneHoldingsLtd.AllRightsReserved.8Label和TextBox的属性和事件属性名称说明Text获取或设置Label控件中的数据Label的属性:属性名称说明Text获取或设置TextBox控件中的数据TextMode显示模式:单行、多行或密码文本ReadOnly防止用户更改文本AutoPostBack设置为True时,当用户更改内容后离开控件时,导致控件触发TextChangedpostback事件。默认情况下设置为False.TextChanged事件–用户输入信息后离开TextBoxWeb服务器控件时,控件引发程序员可以处理的此事件。©2007iSoftStoneHoldingsLtd.AllRightsReserved.9使用文本输入控件privatevoidtxtUserName_TextChanged(objectsender,System.EventArgse){lblUserNm.Text=txtUserName.Text;}Label控件文本属性TextBox控件文本属性©2007iSoftStoneHoldingsLtd.AllRightsReserved.10控制权转移控件有四种类型的控制权转移控件:•Button控件–显示标准HTML窗体按钮•ImageButton控件-显示图像窗体按钮•LinkButton控件-在按钮上显示超文本链接•Hyperlink控件-在某些文本上显示超文本链接©2007iSoftStoneHoldingsLtd.AllRightsReserved.11Button的属性和事件属性名称说明Text获取/设置按钮上显示的文本事件名称说明Click单击按钮时会引发该事件,且包含该按钮的窗体会提交给服务器©2007iSoftStoneHoldingsLtd.AllRightsReserved.12ImageButton的属性和事件属性名称说明Text获取/设置按钮上显示的文本ImageURL指定按钮图像的URL事件名称说明Click单击按钮时会引发该事件,且包含该按钮的窗体会提交给服务器©2007iSoftStoneHoldingsLtd.AllRightsReserved.13LinkButton的属性和事件属性名称说明Text获取/设置按钮上显示的文本ImageURL指定按钮图像的URL事件名称说明Click单击按钮时会引发该事件,且包含该按钮的窗体会提交给服务器©2007iSoftStoneHoldingsLtd.AllRightsReserved.14超链接属性属性名称说明Text链接的文本标签Target链接的目标窗口或框架。可能的值为_top、_self、_parent、_search或_blankNavigateURL单击链接时用户即将链接到的页面的URLImageURL指定用于链接的图像的URL注意:此控件没有公开事件©2007iSoftStoneHoldingsLtd.AllRightsReserved.15使用控制权转移控件处理ImageButton的Click事件privatevoidbtnTenNews_Click(objectsender,System.EventArgse){//处理按钮Click事件lblStatus.Text=已单击按钮!;}privatevoidimgBtnSoccer_Click(objectsender,System.Web.UI.ImageClickEventArgse){//处理按钮Click事件lblStatus.Text=已单击图像按钮!;}处理Button的Click事件©2007iSoftStoneHoldingsLtd.AllRightsReserved.16使用控制权转移控件Button控件ImageButton控件Hyperlink控件©2007iSoftStoneHoldingsLtd.AllRightsReserved.17选择控件有四种类型的选择控件:•CheckBox–为用户提供一种方法在true/false、yes/no或on/off选项之间切换•RadioButton-用于只从选项列表中选择一个选项•DropdownList-允许用户从预定义列表中选择一项•ListBox-允许用户从预定义列表中选择一项或多项©2007iSoftStoneHoldingsLtd.AllRightsReserved.18Checkbox:属性和事件属性名称说明Text获得/设置与CheckBox关联的文本标签AutoPostBack获取或设置指示单击时CheckBox状态是否自动发回到服务器的值Checked获取或设置指示是否选中CheckBox控件的值CheckedChanged事件--当Checked属性值在发布到服务器的各个操作之间发生变化时发生©2007iSoftStoneHoldingsLtd.AllRightsReserved.19RadioButton:属性和事件属性名称说明Text获取或设置与RadioButton关联的文本标签AutoPostBack获取或设置指示单击时RadioButton状态是否自动发回到服务器的值Checked获取或设置指示是否选中RadioButton控件的值CheckedChanged事件--当Checked属性值在发布到服务器的各个操作之间发生变化时发生©2007iSoftStoneHoldingsLtd.AllRightsReserved.20DropdownList属性属性名称说明AutoPostBack获取或设置指示单击时DropdownList状态是否自动发回到服务器的值DataMember获取或设置数据源中的特定表格以绑定到该控件DataSource获取或设置填充列表控件项的数据源DataTextField获取或设置提供列表项内容的数据源字段DataTextFormatString获取或设置用于控制如何显示绑定到列表控件的数据的格式字符串DataValueField获取或设置提供列表项文本内容的数据源字段©2007iSoftStoneHoldingsLtd.AllRightsReserved.21DropdownList事件事件名称说明SelectedIndexChanged当从列表控件选择的内容在发布到服务器的操作之间发生变化时发生©2007iSoftStoneHoldingsLtd.AllRightsReserved.22ListBox:属性和事件属性名称说明Rows获取或设置ListBox控件中显示的行数SelectionMode获取或设置ListBox控件的选择模式事件名称说明SelectedIndexChanged当从列表控件选择的内容在发布到服务器的操作之间发生变化时发生©2007iSoftStoneHoldingsLtd.AllRightsReserved.23使用选择控件privatevoidradGenderM_CheckedChanged(objectsender,System.EventArgse){strGender=“男;}privatevoidcboSalRange_SelectedIndexChanged(objectsender,System.EventArgse){strSalRange=cboSalRange.SelectedItem.Text;}privatevoidchkMusic_CheckedChanged(objectsender,System.EventArgse){if(strHobbies==)strHobbies=strHobbies+chkMusic.Text;elsestrHobbies=strHobbies+,+chkMusic.Text;}privatevoidlstOwnership_SelectedIndexChanged(objectsender,System.EventArgse){if(strOwnership==)strOwnership=strOwnership+lstOwnership.SelectedValue;elsestrOwnership=strOwnership+,+lstOwnership.SelectedValue;}显示处理Checkbox/RadioButton/DropdownList/List控件的代码片段©2007iSoftStoneHoldingsLtd.AllRightsReserved.24使用选择控件©2007iSoftStoneHoldingsLtd.AllRightsReserved.25容器控件有两种类型的容器控件:•Panel控件–PanelWeb服务器控件提供一个位于Web窗体页的容器控件,该控件可用作静态文本和其他控件的父级•Placeholder控件-存储动态添加到网页上的服务器控件的容器©2007iSoftStoneHoldingsLtd.AllRightsReserved.26Placeholder:属性和事件属性:最常用属性是用于添加/删除此容器控件的子控件的Controls属性事件:所有的事件都继承自System.Web.UI.WebControls.WebControl类通常不处理此控件的事件,子控件的特定事件按照控件的方式进行处理©2007iSoftStoneHoldingsLtd.AllRightsReserved.27privatevoidbtnAdd_Click(objectsender,System.EventArgse){PanelpnPerson=newPanel();switch(nNumber%3