【ASP.NET】Web服务器控件

时间:2022-09-17 13:44:29

前言

        与HTML控件类似,不同的是HTML控件应用于客户端,而Web控件应用于服务器,在HTML控件中加上“runat=‘server’”之后,HTML控件的命名空间改变给asp,也就是由客户端控件变为了Web控件。上篇博客说道了asp.net中的对象,其实,Web控件也是对象,它与对象一样,拥有自己的方法和属性,并且可以响应事件,一旦将Web控件包括在Web页中,就可以设置其属性并调用其方法,而且,还可以为Web控件编写服务器端代码以响应在客户端上发生的事件。

        现在,Web控件主要有以下四类。

内部控件

        内部空间的使用方法与HTML相同,它们映射到HTML元素并通过使用“runat=‘server’”属性在服务器上执行。在创建控件时,如:

<!--HTML控件-->
<input type="checkbox">
<input type="radio">
<input type="text">
<textarea>
<!--内部控件-->
<asp:CheckBox>
<asp:Radio>
<asp:TextBox rows="1">
<asp:TextBox rows="10">
        区别很简单,一个用input标记,一个用asp标记,前者在客户端执行,后者在服务器端执行。

文本输入

        内部控件封装了一些简单的文本输入框所需要的属性,如:

<!--单行输入-->
<asp:textbox id="name" runat="server"/>
<!--多行输入-->
<asp:textbox id="add" textmode="multline" row="10" columns="10" runat="server"/>
<!--密码输入-->
<asp:textbox id="pwd" textmode="password" runat="server"/>

控制转移

        在页面之间进行操作,必不可少的就是控制的转移,如button、ImageButton、Hyperlink、LinkButton等控件都可以实现控制的转移,不同的是:

1、Button和ImageButton用于将数据传递回服务器,也就是和客户端和服务端之间的“信使”。

2、当用户需要在页面之间导航时,主要使用Hyperlink,这个控件不需要和服务器端进行交互,它只需要完成页面的跳转。

3、LinkButton类似于Button,它也会将数据传递回服务器,但它的外观看起来就像一个超链接,满足特定外观的需要。

选择

        相对于输入框,选择框更会让用户觉得舒服,内部控件中选择控件,如:CheckBox、RadioButton、ListBox、DropDownList等。

<!--CheckBox-->
<asp:checkbox id="chkbx" Text="选择我" runat="server"/>
<!--RadioButton-->
<asp:radiobutton id="radbt1" Text="单选按钮1" groupname="radio" runat="server"/>
<asp:radiobutton id="radbt2" Text="单选按钮2" groupname="radio" runat="server"/>
<asp:radiobutton id="radbt3" Text="单选按钮3" groupname="radio" runat="server"/>
<!--ListBox-->
<asp:listbox id="lstbx" SelectionMode="Single" runat="server"/>
<!--DropDownList-->
<asp:dropdownlist id="dropdnlst" runat="server"/>
        这其中,CheckBox就是简单的选择框,RadioButton加上groupname这个属性,当其中的选择框groupname名称相同时,就实现了单项选择的功能;ListBox和DropDownList有许多类似的地方,他们都可以绑定数据,只不过DropDownList控件只能有一个选项处于选中状态,并且每次只能显示一行(一个选项),而ListBox控件可以设置为允许多选,并且还可以设置为显示多行,这和ListBox中一个属性SelectionMode有关,它有Multiple和Single两个值,分别代表多选和单选,默认单选。

列表控件

        列表控件用于在Web页中创建数据列表,通常,我们将从数据库中查询到的数据填充到此类控件中,用户可以从列表中选择一种选项,并将该选项存储在数据库中,通常,我们使用的列表控件有Repeater、DataList和DataGrid等控件。他们可以直接接受来自数据库的数据并将其绑定显示到页面中。

this.DataGrid.dataSource="SqlDataReader数据";
this.DataGrid.DataBind();

复杂控件

        当我们希望控件拥有复杂的功能或者使用HTML元素无法创建的控件时,就可以使用复杂控件,如ADRotator广告控件、Calendar日历控件等。

<!--AdRotator-->
<Advertisements>
<Ad>
<ImageUrl>图像文件的绝对或相对Url</ImageUrl>
<NavigateUrl>单击此Ad之后访问的目标Web站点</NavigateUrl>
<AlternateText>鼠标在图像上方移动时显示的文本</AlternateText>
<Keyword>指定给此Ad的该类别</Keyword>
<Impressions>在循环播放时间安排中广告的优先级</Impressions>
</Ad>
</Advertisements>
        还要日历控件,响应两个事件:①日期更改;②月份更改。

验证控件

        验证控件减少了我们手动输入代码的繁琐程序,它将一系列的验证封装成控件,供我们使用。

        在下篇博客中,将详细介绍验证控件的使用。

总结

        Web控件相对于HTML控件和HTML服务器控件来说,有很多优点,它的类型化编程简洁并且易于检错,并且,它可以生成更为复杂的服务器控件(复杂控件)。但是,它也有它的缺点,在使用中我们应该分清楚它的利弊,合理的利用这些控件。