第二章:WEB服务器控件
在ASP.NET中,Web Form能容纳的对象主要是Server Control(服务器端控件)。控件叫服务器端的,因为这些控件都是服务器端来处理的。Server Control会在初始化的时候自动生成适合浏览器的HTML代码。这样在编写ASP.NET程序的时候,就不必考虑浏览器的兼容性问题!
服务器端控件的执行过程是:先在服务器执行,根据执行结果生成html元素,然后发回给客户端浏览器。Web 服务器控件位于以 System.Web.UI.Webcontrols 命名的空间中,并集成在 ASP.NET 的基本类库中,人们习惯称为 Web 控件。像 HTML 服务器控件一样,Web 服务器控件也 是被创建于服务器上并且需要 runat="server" 属性来工作。然而,Web 服务器控件不是必 须要映射到已存在的 HTML 元素,它们可以表现为更复杂的元素。
2.1 WEB 服务器控件的格式
Web 服务器控件有两种具体格式。
(1) 所有属性均定义在一对尖括号“<>”内,并以“asp:”作为前缀标志,以“/”作 为结束标志。其
格式形式为:
<asp:control_name id="……" runat="server" />
注意:属性之间要空格分开。
(2) 除了 Text 属性外,其他属性均定义在一对尖括号<>内,并以“asp:control_name” 作为前缀标志,以“</asp:control_name>”作为结束标志,Text 属性放在尖括号和结束标志 的中间。其格式形式为:
<asp:control_name attribute1=value1 attribute2=value2 attributeN=valueN> text <asp:control_name>
注意:control_name为控件名。
示例:
<asp:Label ID="Label1" runat="server" Text="Label" Width="237px"></asp:Label>
<asp:ImageButton ID="ImageButton1" runat="server" />
2.2 服务器控件的类型
ASP.NET提供了两种不同类型的服务器控件:HTML服务器控件和Web服务器控件。这两种类型的控件大不相同,在使用ASP.NET时,就会看出重 点是Web服务器控件。这并不是说,HTML服务器控件没有用,它们提供了许多功能,其中一些功能Web服务器控件也没有。
2.3 用服务器控件建立页面
使用服务器控件构建ASP.NET页面有两种方式。可以可视化地把控件拖放到设计界面上,操纵该控件的行为。也可以直接通过输入代码来处理服务器控件。
2.3.1 在设计界面上使用服务器控件高级编程)
Visual Studio 2005允许可视化地把控件拖放到设计界面上,可视化地创建ASP.NET页面。要获得这个可视化的设计选项,可以在查看ASP.NET页面时,单击 IDE底部的Design选项卡。在这个视图中,可以把光标放在希望控件出现的地方,再在Visual Studio的Toolbox窗口中双击需要的控件。
在页面的Design视图中,可以突出显示一个控件,该控件的属性就会显示在Properties窗口中。例如,在图4-1中,在设计面板上选择Button控件,其属性就显示在右下角的Properties窗口中。
图 4-1
在这个窗口中修改属性,就会改变突出显示的控件的外观或行为。所有的控件都继承了一个特定的基类(WebControl),所以还可以同时突出显示多个控件,一次改变这些控件的基本属性。在选择控件时,需要按住Ctrl键。
2.3.2 在Source界面使用服务器控件
与Design视图一样,页面的Source视图也允许把控件从Toolbox拖放到代码页面上。例如,把一个TextBox控件拖放到代码页面上,与把它拖放到设计界面上的效果相同:
<asp:TextBox ID="TextBox1" Runat="server"></asp:TextBox>
也可以在Source视图中突出显示一个控件,或把光标放在该控件的代码语句上,Properties窗口就会显示该控件的属性。现在就可以直接应用Visual Studio的Properties窗口中的属性了,这些属性会动态添加到控件的代码中。
2.3.3 处理服务器控件的事件
例如,窗体上按钮的一个常见事件是Button_Click,如程序清单所示。
处理按钮单击事件
protected void Button1_Click(object sender,EventArgs e)
{
// Code actions here
}
程序清单中的事件仅在终端用户单击了窗体上的按钮时才触发,该窗体具有Button1_Click的OnClick属性值。所以事件处理程序不仅存在于ASP.NET页面的服务器端代码上,还使 用相关的ASP.NET页面标记中的服务器控件的OnClick属性关联起来,如下面的代码所示:
<asp:Button ID="Button1" Runat="server" Text="Button" OnClick="Button1_Click" />
如何触发服务器控件的这些事件?有两种方式。第 一种方式是在Design视图中打开ASP.NET页面,双击要创建服务器端事件的控件。例如,双击Design视图中的Button服务器控件,无论代 码是在后台编码文件中,还是内置代码,都会在服务器端代码中创建Button1_Click事件的结构。这会为该服务器控件最常用的事件创建一个处理程序 框架。
如前所述,注意Button控件有非常多的事件,双击该控件并不能得到这些事件。为了访问这些事件,应打开包含服务器端代码的页面,从IDE顶部的第一个下拉列表中选择该控件,再在第二个下拉列表中 选择该控件需要的事件。下图显示了事件下拉列表。例如,处理Button
控件的PreRender事件,而不是其Click事件。该事件的处理程序会 放在服务器端代码中。
第二种方式是在Visual Studio的Properties窗口中为服务器控件创建服务器端的事件。这种方式只能用于页面的Design视图。在Design视图中,突出显示要 处理的服务器控件,该控件的属性和一个图标菜单就会出现在Properties窗口中。其中一个图标是事件图标,用一个闪电图形表示,如图所示。
单击事件图标会打开该控件的可用事件列表。双击其中一个事件,就会在服务器端代码中创建该事件的结构。
有了事件的结构后,就可以编写触发事件时希望发生的特定操作了。
2.4 控件的常见属性
ASP.NET 2.0的许多服务器控件都派生于WebControl类,拥有公共属性,并不是所有的服务器控件都派生于WebControl类中。例如,Literal、 PlaceHolder、Repeater和XML服务器控件就不是派生于WebControl基类,而是派生于Control类。HTML服务器控件也没有派生于WebControl基类,因为它们主要用于设置HTML元素的属性。表4-2列出了服务器控件都有的公共属性。
属 性 | 说 明 |
AccessKey | 允许赋予与Alt键相关的一个字符,这样终端用户就可以使用键盘上的快捷键激活控件了。例如,给Button 控件的AccessKey属性赋予K。这样,终端用户就不需要单击ASP.NET页面上的按钮(使用鼠标控制的指针),而可以按下Alt+K |
Attributes | 允许为Web服务器控件定义公共属性未定义的额外属性 |
BackColor | 控制ASP.NET页面上控件的背景 |
BorderColor | 给服务器控件的边框设置颜 |
BorderWidth | 给组成控件边框的线设置线宽值。把一个数字设置为该值,就是把该数字设置为边框的宽度像素值。如果BorderColor属性没有与BorderWidth属性设置一起使用,默认的边框颜就是黑 |
BorderStyle | 允许指定服务器控件边框的设计样式。边框默认创建为直线,但可以给边框使用许多不同的样式。BorderStyle属性的其他值有Dotted、Dashed、Solid、Double、Groove、Ridge、Inset和Outset |
CssClass | 给控件指定定制的层叠样式表(Cascading Style Sheet,CSS)类文件 |
Enabled | 把这个属性的值设置为False,就关闭了控件的功能。Enabled属性默认设置为True |
(续表)
属 性 | 说 明 |
EnableTheming | 允许为所选的服务器控件打开主题功能。其默认值是True。这是.NET Framework 2.0中的一个新属性 |
Font | 设置控件中所有文本的字体 |
ForeColor | 设置控件中所有文本的颜 |
Height | 设置控件的高度 |
SkinID | 给控件应用主题时设置要使用的skin。这是.NET Framework 2.0中的一个新属性 |
Style | 允许把CSS样式应用于控件 |
TabIndex | 设置控件在ASP.NET 页面中的tab位置。这个属性与页面上的其他控件一起使用 |
ToolTip | 设置当鼠标停留在控件上一小段时间时,出现在浏览器的一个黄框中的文本,它可以用于提供更多的指示给终端用户 |
Width | 设置控件的宽度 |
许多服务器控件都有这些公共属性。在.NET Framework 2.0中,WebControl类的新属性有EnableTheming和SkinID。
2.5 控件的种类
控件可以分为:
文本输入和文本控制的控件
传输或定位控制的控件
选择控件
容器控件
2.5.1 checkbox和radiobutton的区别标签、文本框
文本控件主要包括两种类型,分别为Label和TextBox,其中Label控件一般是用来显示或提醒用户的控件,而TextBox一般是用来接受用户输入的控件。
2.5.2 Button、ImageButton、LinkButton、HyperLink控件
Button控件
默认情况下,Button控件外观与HTML控件中的提交按钮相似,都是灰的。
单击按钮时,会提交包含按钮的窗体,并引发Click事件。
ImageButton控件
ImageButton服务器控件使用定制图像作为窗体的按钮,实现Button的按钮功能。
ImageButton控件的构件代码所示:
<asp:ImageButton ID=”ImageButton1” Runat=”server” OnClick=”ImageButton1_Click” ImageUrl=”MyButton.jpg” />
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论