《Web服务器控》PPT课件.ppt
第三章第三章Web服务器控件回顾qASP.NET页文件是含有将在Web服务器上执行代码的文件。其扩展名是.aspx或.ascxqASP.NET页面中使用两种类型的脚本:q服务器端脚本q客户端脚本q事件处理程序实际上就是一个子程序,执行任何给定事件的相关代码q在页面加载时引发Page_Load事件qPage.IsPostback属性用于检查页面是否为首次加载qViewState是ASP.NET中用来保存WEB控件回传时状态值的页面隐藏控件qASP.NET代码隐藏文件使开发人员可以在C#或VisualBasic.NET 类中编写控制它们的页的逻辑,这样可与HTML代码清楚地分离开来目标q使用文本输入控件q使用控制权转移控件q使用选择控件q讨论其他控件Web控件简介q控件是用于在Web窗体执行所有任务的工具q控件定义Web窗体的外观qMicrosoftVisualStudio.NET提供了两种可用于Web窗体的控件,分别为:qWeb服务器控件qHTML控件添加Web服务器控件使用Web窗体设计器添加Web服务器控件:Web服务器控件面板双击或单击并拖动Web服务器控件,将其添加到Web窗体Web服务器控件的类型q内部控件q文本输入控件q控制权转移控件q选择控件q容器控件q其他控件用于某些特定用途的专用控件文本输入控件qTextBox控件用作将由用户或程序员输入的文本的占位符,输入的文本可以用程序读取qLabel标签-用作将由程序员在设计时或运行时输入的文本的占位符。在此控件内不能进行用户交互有两种类型的文本输入控件:Label和TextBox的属性和事件属性名称说明Text获取或设置Label控件中的数据Label的属性:属性名称说明Text获取或设置TextBox控件中的数据TextMode显示模式:单行、多行或密码文本ReadOnly防止用户更改文本AutoPostBack设置为True时,当用户更改内容后离开控件时,导致控件触发TextChangedpostback事件。默认情况下设置为False.TextChanged事件用户输入信息后离开TextBoxWeb服务器控件时,控件引发程序员可以处理的此事件。使用文本输入控件privatevoidtxtUserName_TextChanged(objectsender,System.EventArgse)lblUserNm.Text=txtUserName.Text;Label控件文本属性TextBox控件文本属性控制权转移控件有四种类型的控制权转移控件:qButton控件显示标准HTML窗体按钮qImageButton控件-显示图像窗体按钮qLinkButton控件-在按钮上显示超文本链接qHyperlink控件-在某些文本上显示超文本链接Button的属性和事件属性名称说明Text获取/设置按钮上显示的文本事件名称事件名称说明说明Click单击按钮时会引发该事件,且包含该按钮的窗体会提交给服务器ImageButton的属性和事件属性名称属性名称说明说明Text获取/设置按钮上显示的文本ImageURL指定按钮图像的URL事件名称事件名称说明说明Click单击按钮时会引发该事件,且包含该按钮的窗体会提交给服务器LinkButton的属性和事件属性名称属性名称说明说明Text获取/设置按钮上显示的文本ImageURL指定按钮图像的URL事件名称事件名称说明说明Click单击按钮时会引发该事件,且包含该按钮的窗体会提交给服务器超链接属性属性名称属性名称说明说明Text链接的文本标签Target链接的目标窗口或框架。可能的值为_top、_self、_parent、_search或_blankNavigateURL单击链接时用户即将链接到的页面的URLImageURL指定用于链接的图像的URL注意:此控件没有公开事件使用控制权转移控件处理ImageButton的Click事件privatevoidbtnTenNews_Click(objectsender,System.EventArgse)/处理按钮Click事件lblStatus.Text=已单击按钮!;privatevoidimgBtnSoccer_Click(objectsender,System.Web.UI.ImageClickEventArgse)/处理按钮Click事件lblStatus.Text=已单击图像按钮!;处理Button的Click事件使用控制权转移控件Button控件ImageButton控件Hyperlink控件选择控件有四种类型的选择控件:qCheckBox 为用户提供一种方法在true/false、yes/no或on/off选项之间切换qRadioButton-用于只从选项列表中选择一个选项qDropdownList-允许用户从预定义列表中选择一项qListBox-允许用户从预定义列表中选择一项或多项Checkbox:属性和事件属性名称说明Text获得/设置与CheckBox关联的文本标签AutoPostBack获取或设置指示单击时CheckBox状态是否自动发回到服务器的值Checked获取或设置指示是否选中CheckBox控件的值qCheckedChanged事件-当Checked属性值在发布到服务器的各个操作之间发生变化时发生RadioButton:属性和事件属性名称说明Text获取或设置与RadioButton关联的文本标签AutoPostBack获取或设置指示单击时RadioButton状态是否自动发回到服务器的值Checked获取或设置指示是否选中RadioButton控件的值qCheckedChanged事件-当Checked属性值在发布到服务器的各个操作之间发生变化时发生DropdownList属性属性名称属性名称说明说明AutoPostBack获取或设置指示单击时DropdownList状态是否自动发回到服务器的值DataMember获取或设置数据源中的特定表格以绑定到该控件DataSource获取或设置填充列表控件项的数据源DataTextField获取或设置提供列表项内容的数据源字段DataTextFormatString获取或设置用于控制如何显示绑定到列表控件的数据的格式字符串DataValueField获取或设置提供列表项文本内容的数据源字段DropdownList事件事件名称事件名称说明说明SelectedIndexChanged当从列表控件选择的内容在发布到服务器的操作之间发生变化时发生ListBox:属性和事件属性名称属性名称说明说明Rows获取或设置ListBox控件中显示的行数SelectionMode获取或设置ListBox控件的选择模式事件名称事件名称说明说明SelectedIndexChanged当从列表控件选择的内容在发布到服务器的操作之间发生变化时发生使用选择控件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控件的代码片段使用选择控件容器控件有两种类型的容器控件:qPanel控件PanelWeb服务器控件提供一个位于Web窗体页的容器控件,该控件可用作静态文本和其他控件的父级qPlaceholder控件-存储动态添加到网页上的服务器控件的容器Placeholder:属性和事件属性:属性:最常用属性是用于添加/删除此容器控件的子控件的Controls属性事件:事件:所有的事件都继承自System.Web.UI.WebControls.WebControl类通常不处理此控件的事件,子控件的特定事件按照控件的方式进行处理privatevoidbtnAdd_Click(objectsender,System.EventArgse)PanelpnPerson=newPanel();switch(nNumber%3)case1:pnPerson.BackColor=Color.Red;break;case2:pnPerson.BackColor=Color.Green;break;default:pnPerson.BackColor=Color.Blue;break;TabletbTemp=newTable();/添加姓名TableRowobjRow=newTableRow();TableCelltcLblName=newTableCell();tcLblName.Text=姓名;objRow.Cells.Add(tcLblName);TableCelltcTxtName=newTableCell();TextBoxtxtObjName=newTextBox();txtObjName.Text=this.txtName.Text;tcTxtName.Controls.Add(txtObjName);objRow.Cells.Add(tcTxtName);TableCelltcLblSex=newTableCell();tcLblSex.Text=性别;objRow.Cells.Add(tcLblSex);TableCelltcTxtSex=newTableCell();TextBoxtxtObjSex=newTextBox();for(inti=0;i=this.rdlSex.Items.Count-1;i+)if(this.rdlSex.Itemsi.Selected=true)txtObjSex.Text=this.rdlSex.Itemsi.Text;tcTxtSex.Controls.Add(txtObjSex);objRow.Cells.Add(tcTxtSex);tbTemp.Rows.Add(objRow);/添加第二行TableRowobjRow2=newTableRow();TableCelltcLblNum=newTableCell();tcLblNum.Text=学号;objRow2.Cells.Add(tcLblNum);TableCelltcTxtNum=newTableCell();tcTxtNum.Text=this.txtNumber.Text;objRow2.Cells.Add(tcTxtNum);TableCelltcLblHobby=newTableCell();tcLblHobby.Text=爱好;objRow2.Cells.Add(tcLblHobby);TableCelltcTxtHobby=newTableCell();foreach(ListItemliinthis.cklHobby.Items)if(li.Selected=true)tcTxtHobby.Text+=li.Text+,;objRow2.Cells.Add(tcTxtHobby);tbTemp.Rows.Add(objRow2);pnPerson.Controls.Add(tbTemp);this.phControls.Controls.Add(pnPerson);nNumber+=1;使用容器控件其他控件qAdRotator用于显示横幅广告集合中的随机选择内容,该集合在基于XML的广告文件中指定qCalendar-允许开发人员提供基于日历的界面,用于选择日期或查看与日期相关的数据其他控件是用于特定用途的控件,只能用于特殊任务AdRotator:属性和事件属性名称属性名称说明说明AdvertisementFile获取或设置包含广告信息的XML文件的路径KeywordFilter获取或设置分类关键字过滤XML广告文件中特定类型的广告事件名称事件名称说明说明AdCreated创建控件后访问服务器的每个往返周期发生一次,但是在显示网页之前发生 AdRotator调用的XML文件广告使用AdRotator控件3-1注意:添加AdRotator控件之后,右击“项目”,“添加新项”,然后选择如图所示的“XML文件”,从而创建包含广告图像的XML文件使用AdRotator控件3-2新建XML文件之后,将以下XML代码添加到此文件中:images/Bluehills.gifhttp:/冬日站点60Usersimages/Sunset.gifhttp:/ txtStart.Text=calStEndDt.SelectedDate.ToString();calStEndDt.Visible=false;使用Calendar控件3-3总结q在ASP.NET中,控件分成HTML服务控件和Web服务控件两种q所有的ASP.NETWeb服务器控件都派生自System.Web.UI.WebControls命名空间q使用Web服务器控件需要注意AutoPostBack的使用qWeb服务器控件可以分为:q文本输入控件q控制权转移控件q选择控件q容器控件q其它专用控件