您好,欢迎访问三七文档
1第二章:WEB服务器控件在ASP.NET中,WebForm能容纳的对象主要是ServerControl(服务器端控件)。控件叫服务器端的,因为这些控件都是服务器端来处理的。ServerControl会在初始化的时候自动生成适合浏览器的HTML代码。这样在编写ASP.NET程序的时候,就不必考虑浏览器的兼容性问题!服务器端控件的执行过程是:先在服务器执行,根据执行结果生成html元素,然后发回给客户端浏览器。Web服务器控件位于以System.Web.UI.Webcontrols命名的空间中,并集成在ASP.NET的基本类库中,人们习惯称为Web控件。像HTML服务器控件一样,Web服务器控件也是被创建于服务器上并且需要runat=server属性来工作。然而,Web服务器控件不是必须要映射到已存在的HTML元素,它们可以表现为更复杂的元素。2.1WEB服务器控件的格式Web服务器控件有两种具体格式。(1)所有属性均定义在一对尖括号“”内,并以“asp:”作为前缀标志,以“/”作为结束标志。其格式形式为:asp:control_nameid=……runat=server/注意:属性之间要空格分开。(2)除了Text属性外,其他属性均定义在一对尖括号内,并以“asp:control_name”作为前缀标志,以“/asp:control_name”作为结束标志,Text属性放在尖括号和结束标志的中间。其格式形式为:asp:control_nameattribute1=value1attribute2=value2attributeN=valueNtextasp:control_name注意:control_name为控件名。示例:asp:LabelID=Label1runat=serverText=LabelWidth=237px/asp:Labelasp:ImageButtonID=ImageButton1runat=server/2.2服务器控件的类型ASP.NET提供了两种不同类型的服务器控件:HTML服务器控件和Web服务器控件。这两种类型的控件大不相同,在使用ASP.NET时,就会看出重点是Web服务器控件。这并不是说,HTML服务器控件没有用,它们提供了许多功能,其中一些功能Web服务器控件也没有。2.3用服务器控件建立页面使用服务器控件构建ASP.NET页面有两种方式。可以可视化地把控件拖放到设计界面上,操纵该控件的行为。也可以直接通过输入代码来处理服务器控件。22.3.1在设计界面上使用服务器控件高级编程)VisualStudio2005允许可视化地把控件拖放到设计界面上,可视化地创建ASP.NET页面。要获得这个可视化的设计选项,可以在查看ASP.NET页面时,单击IDE底部的Design选项卡。在这个视图中,可以把光标放在希望控件出现的地方,再在VisualStudio的Toolbox窗口中双击需要的控件。在页面的Design视图中,可以突出显示一个控件,该控件的属性就会显示在Properties窗口中。例如,在图4-1中,在设计面板上选择Button控件,其属性就显示在右下角的Properties窗口中。图4-1在这个窗口中修改属性,就会改变突出显示的控件的外观或行为。所有的控件都继承了一个特定的基类(WebControl),所以还可以同时突出显示多个控件,一次改变这些控件的基本属性。在选择控件时,需要按住Ctrl键。2.3.2在Source界面使用服务器控件与Design视图一样,页面的Source视图也允许把控件从Toolbox拖放到代码页面上。例如,把一个TextBox控件拖放到代码页面上,与把它拖放到设计界面上的效果相同:asp:TextBoxID=TextBox1Runat=server/asp:TextBox也可以在Source视图中突出显示一个控件,或把光标放在该控件的代码语句上,Properties窗口就会显示该控件的属性。现在就可以直接应用VisualStudio的Properties窗口中的属性了,这些属性会动态添加到控件的代码中。2.3.3处理服务器控件的事件例如,窗体上按钮的一个常见事件是Button_Click,如程序清单所示。处理按钮单击事件protectedvoidButton1_Click(objectsender,EventArgse){//Codeactionshere}程序清单中的事件仅在终端用户单击了窗体上的按钮时才触发,该窗体具有3Button1_Click的OnClick属性值。所以事件处理程序不仅存在于ASP.NET页面的服务器端代码上,还使用相关的ASP.NET页面标记中的服务器控件的OnClick属性关联起来,如下面的代码所示:asp:ButtonID=Button1Runat=serverText=ButtonOnClick=Button1_Click/如何触发服务器控件的这些事件?有两种方式。第一种方式是在Design视图中打开ASP.NET页面,双击要创建服务器端事件的控件。例如,双击Design视图中的Button服务器控件,无论代码是在后台编码文件中,还是内置代码,都会在服务器端代码中创建Button1_Click事件的结构。这会为该服务器控件最常用的事件创建一个处理程序框架。如前所述,注意Button控件有非常多的事件,双击该控件并不能得到这些事件。为了访问这些事件,应打开包含服务器端代码的页面,从IDE顶部的第一个下拉列表中选择该控件,再在第二个下拉列表中选择该控件需要的事件。下图显示了事件下拉列表。例如,处理Button控件的PreRender事件,而不是其Click事件。该事件的处理程序会放在服务器端代码中。第二种方式是在VisualStudio的Properties窗口中为服务器控件创建服务器端的事件。这种方式只能用于页面的Design视图。在Design视图中,突出显示要处理的服务器控件,该控件的属性和一个图标菜单就会出现在Properties窗口中。其中一个图标是事件图标,用一个闪电图形表示,如图所示。单击事件图标会打开该控件的可用事件列表。双击其中一个事件,就会在服务器端代码中创建该事件的结构。有了事件的结构后,就可以编写触发事件时希望发生的特定操作了。2.4控件的常见属性ASP.NET2.0的许多服务器控件都派生于WebControl类,拥有公共属性,并不是所有的服务器控件都派生于WebControl类中。例如,Literal、PlaceHolder、Repeater和XML服务器控件就不是派生于WebControl基类,而是派生于Control类。HTML服务器控件也没有派4生于WebControl基类,因为它们主要用于设置HTML元素的属性。表4-2列出了服务器控件都有的公共属性。属性说明AccessKey允许赋予与Alt键相关的一个字符,这样终端用户就可以使用键盘上的快捷键激活控件了。例如,给Button控件的AccessKey属性赋予K。这样,终端用户就不需要单击ASP.NET页面上的按钮(使用鼠标控制的指针),而可以按下Alt+KAttributes允许为Web服务器控件定义公共属性未定义的额外属性BackColor控制ASP.NET页面上控件的背景色BorderColor给服务器控件的边框设置颜色BorderWidth给组成控件边框的线设置线宽值。把一个数字设置为该值,就是把该数字设置为边框的宽度像素值。如果BorderColor属性没有与BorderWidth属性设置一起使用,默认的边框颜色就是黑色BorderStyle允许指定服务器控件边框的设计样式。边框默认创建为直线,但可以给边框使用许多不同的样式。BorderStyle属性的其他值有Dotted、Dashed、Solid、Double、Groove、Ridge、Inset和OutsetCssClass给控件指定定制的层叠样式表(CascadingStyleSheet,CSS)类文件Enabled把这个属性的值设置为False,就关闭了控件的功能。Enabled属性默认设置为True(续表)属性说明EnableTheming允许为所选的服务器控件打开主题功能。其默认值是True。这是.NETFramework2.0中的一个新属性Font设置控件中所有文本的字体ForeColor设置控件中所有文本的颜色Height设置控件的高度SkinID给控件应用主题时设置要使用的skin。这是.NETFramework2.0中的一个新属性Style允许把CSS样式应用于控件TabIndex设置控件在ASP.NET页面中的tab位置。这个属性与页面上的其他控件一起使用ToolTip设置当鼠标停留在控件上一小段时间时,出现在浏览器的一个黄色框中的文本,它可以用于提供更多的指示给终端用户Width设置控件的宽度许多服务器控件都有这些公共属性。在.NETFramework2.0中,WebControl类的新属性有EnableTheming和SkinID。2.5控件的种类控件可以分为:文本输入和文本控制的控件传输或定位控制的控件选择控件5容器控件2.5.1标签、文本框文本控件主要包括两种类型,分别为Label和TextBox,其中Label控件一般是用来显示或提醒用户的控件,而TextBox一般是用来接受用户输入的控件。2.5.2Button、ImageButton、LinkButton、HyperLink控件Button控件默认情况下,Button控件外观与HTML控件中的提交按钮相似,都是灰色的。单击按钮时,会提交包含按钮的窗体,并引发Click事件。ImageButton控件ImageButton服务器控件使用定制图像作为窗体的按钮,实现Button的按钮功能。ImageButton控件的构件代码所示:asp:ImageButtonID=”ImageButton1”Runat=”server”OnClick=”ImageButton1_Click”ImageUrl=”MyButton.jpg”/ImageButton控件与Button控件最大的区别是,ImageButton的OnClick事件有不同的构造,如下程序所示:protectedvoidImageButton1_Click(objectsender,ImageClickEventArgse){this.Label1.Text=点击的x坐标为+e.X+纵坐标为+e.Y;}该构造代码使用ImageClickEventArge对象,而不是Button控件通常使用的System.EventArgs对象。可以使用这个对象的e.X和e.Y坐标确定终端用户单击了图像的什么位置。LinkButtonLinkButton控件的外观与HyperLink控件相同,但功能与Button控件相同。Button的重要属性与事件:CausesValidation属性如果Web页面上有多个按钮,对于不要求触发验证的按钮,设置CausesValidation设置为False。CommandName属性设置按钮的命令名称,通过命令参数传递给按钮的Command事件。Command事件单击按钮时发生,该事件通常用于一个Command事件响应函数处理多个按钮的Command事件,在事件函数中通过判定由事件参数传入的CommandName判定哪一个按钮被点击示例代码:asp:LabelID=Label1runat=serverText=Label/asp:Labelbr/asp:ButtonID=Button1runat=serverText=ButtonCommandName=insertOnCommand=Command/asp:ButtonID=Button2runat=serverText=ButtonCommandName=deleteOnComm
本文标题:WEBPARTS
链接地址:https://www.777doc.com/doc-25742 .html