第4章Web服务器控件教学目标教学重点教学过程第1页2020年3月1日第2页教学目标通过本章的学习,应掌握常用Web服务器控件的用法。第3页教学重点掌握Web服务器控件中的内部控件、增强控件第4页教学过程讲解Web服务器控件中的内部控件、增强控件【随堂演练】巩固学习成果第5页第4章Web服务器控件ASP的局限性htmlbodybgcolor=yellowcenterh2HelloWorld!/h2p%Response.Write(now())%/p/center/body/html上面的代码能够反映出ClassicASP的局限性:代码块必须放置在需要进行输出的位置。通过ASP,我们是无法将可执行代码与HTML本身进行分离的。这使得页面难以阅读,也难以维护。第6页第4章Web服务器控件服务器控件是可被服务器理解的标签。有三种类型的服务器控件:–HTML服务器控件-传统的HTML标签–Web服务器控件-新的ASP.NET标签–Validation服务器控件-用于输入验证第7页HTML服务器控件HTML服务器控件是服务器可理解的HTML标签。ASP.NET中的HTML元素是作为文本来进行处理的。要想使这些元素可编程,就需要向这些HTML元素添加runat=server属性。该属性指示,此元素是一个服务器控件。同时要添加id属性来标识该服务器控件。id引用可用于操作运行时的服务器控件。注释:所有HTML服务器控件必须位于带有runat=server属性的form标签内。runat=server属性指示该表单应在服务器进行处理。它同时指示其包括在内的控件可被服务器脚本访问。在下面的例子中,我们在.aspx文件中声明了一个HtmlAnchor服务器控件。然后我们在一个事件句柄中操作该HtmlAnchor控件的HRef属性。Page_Load事件是众多ASP.NET可理解的事件中的一种类型:注释:事件句柄(eventhandler)是一种针对给定事件执行代码的子例程。第8页HTML服务器控件scriptrunat=serverSubPage_Loadlink1.HRef==serveraid=link1runat=serverVisitW3School!/a/form/body/html提示:可执行代码本身已被移到HTML之外了。第9页Web服务器控件Web服务器控件是服务器可理解的特殊ASP.NET标签。类似HTML服务器控件,Web服务器控件也在服务器上创建,它们同样需要runat=server属性以使其生效。不过,Web服务器控件没有必要映射任何已存在的HTML元素,它们代表更复杂的元素。创建Web服务器控件的语法是:asp:control_nameid=some_idrunat=server/第10页Web服务器控件scriptrunat=serverSubsubmit(SourceAsObject,eAsEventArgs)button1.Text=Youclickedme!EndSub/scripthtmlbodyformrunat=serverasp:Buttonid=button1Text=Clickme!runat=serverOnClick=submit//form/body/html在下面的例子中,我们在.aspx文件中的声明了一个Button服务器控件。然后我们为Click事件创建了一个事件句柄,它可修改按钮上的文本:第11页Validation服务器控件Validation服务器控件用于验证用户输入。如果用户输入没有通过验证,将给用户显示一条错误消息。每种validation控件执行一种特定的验证类型(比如验证某个具体的值或者某个范围的值)。默认地,当点击Button,ImageButton或LinkButton时,页面验证才会被执行。您可通过把CausesValidation属性设置为false,来阻止某个按钮控件被点击时进行验证。创建Validation服务器控件的语法是:asp:control_nameid=some_idrunat=server/第12页Web服务器控件htmlbodyformrunat=serverpEnteranumberfrom1to100:asp:TextBoxid=tbox1runat=server/br/br/asp:ButtonText=Submitrunat=server//ppasp:RangeValidatorControlToValidate=tbox1MinimumValue=1MaximumValue=100Type=IntegerText=Thevaluemustbefrom1to100!runat=server//p/form/body/html.aspx文件中声明了一个TextBox控件,一个Button控件,以及一个RangeValidator控件。如果验证失败,文本Thevaluemustbefrom1to100!将显示在RangeValidator控件中:第13页4.1ASP.NET控件的共有属性本节将介绍Web控件的共有属性,所谓共有属性就是所有的Web控件都具有的属性。这些属性包括Accesskey、BackColor、ForeColor、BorderWidth、BorderColor、BorderSytle、Enable、Font、TabIndex、ToolTip、Visible、Height和Width第14页4.1ASP.NET控件的共有属性BackColor属性设定对象的背景色,其属性的设定值为颜色名称或是#RRGGBB的格式。如果用RGB来调色,利用影像软件或FrontPage来查询颜色的值较为方便。下列程序代码设定了LabelWeb控件的背景色为灰色:ASP:LabelId=Label1Text=LabelBackColor=#E0E0E0Runat=Server/ForeColor属性用于设置控件的前景色,其属性的设置和BackColor一样。ASP:LabelId=Label1Text=LabelForeColor=#E0E0E0Runat=Server/第15页4.1ASP.NET控件的共有属性BackColor属性设定对象的背景色,其属性的设定值为颜色名称或是#RRGGBB的格式。如果用RGB来调色,利用影像软件或FrontPage来查询颜色的值较为方便。下列程序代码设定了LabelWeb控件的背景色为灰色:ASP:LabelId=Label1Text=LabelBackColor=#E0E0E0Runat=Server/ForeColor属性用于设置控件的前景色,其属性的设置和BackColor一样。ASP:LabelId=Label1Text=LabelForeColor=#E0E0E0Runat=Server/第16页4.1ASP.NET控件的共有属性边框属性包括:BorderWidth(边框宽度)、BorderColor(边框颜色)、BorderSytle(边框类型)Enabled属性称为致能,用来决定控件是否正常工作。本属性的默认值是True,如要让控件失去作用,只要将控件的Enabled属性值设为False即可将它禁能。我们之前介绍的HTML控件也有一个类似的Disabled属性,称为禁能属性;和这里的Web控件刚好相反。ASP:ButtonId=Button1Text=Button控件Enabled=FalseRunat=Server/pASP:ButtonId=Button2Text=Button控件Runat=Server/第17页4.1ASP.NET控件的共有属性Font属性有以下几个子属性,分别表现不同的字体特性:Font-Bold:如果属性值设定为True,则会变成粗体显示。Font-Italic:如果属性值设定为True,则会变成斜体显示。Font-Names:设置字体的名字。Font-Size:设置字体大小,共有九种大小可供选择Smaller、Larger、XX-Small、X-Small、Small、Medium、Large、X-Large或者XX-Large。Font-Strikeout:如果属性值设定为True,则文字中间显示一条删除线。Font-Underline:如果属性值设定为True,则文字下面显示一条底线。第18页4.1ASP.NET控件的共有属性TabIndex属性用来设置Tab按钮的顺序。当用户使用者按下Tab键时,输入焦点将从当前控件跳转到下一个可以获得焦点的控件,TabIndex键就是用于定义这种跳转顺序的。合理的使用TabIndex属性,可以使用户使用程序时更加轻松,使得程序更加人性化。ToolTip属性用于设置控件的提示信息。在设置了该属性值后,当鼠标停留在Web控件上一小段时间后就会出现ToolTip属性中设置的文字。Visible属性决定了控件是否会被显示,如果属性值为true将显示该控件,否则将隐藏该控件。Height和Width属性分别用于设置控件的高度和宽度,单位是pixel(像素)。第19页4.1ASP.NET控件的共有属性WEB服务器控件分类Web服务器控件的种类也很多,按照功能可以分为:标准服务器控件(本章主要讲解)验证控件数据控件导航控件登录控件Web部件自定义控件20Label(标签)控件Literal(静态文本)控件Textbox(文本框)控件HyperLink(超链接文本)控件4.2文本服务器控件Label控件一般用来给文本框、列表框、组合框等控件添加描述性的文字,或给窗体添加说明文字,或用来显示如处理结果等信息。Label控件显示的内容可以在属性窗口中设定,也可以在程序运行时编写代码进行修改。LabelWeb服务器控件为开发人员提供了一种以编程方式(动态)显示ASP.NET网页中文本的方法。使用说明:如果要显示静态文本,可以使用HTML标记呈现它;不需要使用Label控件。仅当需要在服务器代码中更改文本的内容或其他特性时,才使用Label控件。214.2Label控件Label控件的语法形式如下:asp:Labelid=“控件名称Text=“显示文本Font-Name=“宋体”Font-Size=10.5ptWidth=200px“BorderStyle=solid“BorderColor=#ccccccrunat=server/或者asp:Labelid=Label1runat=server要显示的文本内容/asp:Label224.2Label控件当要以编程方式设置文本而不添加额外的HTML标记时,可以向页面添加Literal控件。当要向页面动态添加文本而不添加任何不属于该动态文本的元素师,Literal控件非常有用。例如,用户可以使用Literal控件来显示从文件或流中读取的HTML。由于Literal服务器控件不在客户端呈现出任何HTML标记,比较适合将服务器端的变量传递到客户端脚本中的一部分Literal控件的语法形式如下:asp:Literalid=Literal1Text=要显示的文本内容runat=server/或者:asp:Literalid=Literal1runat=server要显示的文本内容/asp:Literal234.2Literal(静态文本)控件TextBox控件用于让用户在Web页面中输入文本信息,在某些情况下,也可以用它来显示文本信息.TextBox的语法形式如下:asp:Te