延续前一篇博客的风格,先放一张关于asp.net中控件的思维导图,然后在对导图中的内容进行详解!
首先,asp.net的控件分为html服务器控件和web服务器控件,下面就说一下关于这两类控件的却别吧:
(1)web服务器控件可以触发服务器控件特有的事件,html控件只能通过回传的方式触发服务器页面级事件;
(2)输入到web服务器控件的数据请求之前可以维护,但是html无法自动维护数据,只能使用页面级脚本进行保存或者恢复;
(3)如果某些控件不需要服务器端的事件或者状态管理功能,可以选择html控件,这样可以提高应用程序性能。
下面是关于html控件和web服务器控件的优缺点:
然后,由于html控件都比较简单,就重点介绍一下关于web控件的部分:
如导图所示,web控件包括有:复杂控件,内部控件,列表控件,验证控件和页面重用类控件,其中复杂控件包括两个广告控件和日历控件,由于可以简单的引用不作介绍,列表控件将在下篇博客关于数据绑定的部分进行介绍,验证控件之前有单独写过一篇验证控件知多少。所以在这里只介绍内部控件和页面重用类控件。
1、内部控件:
(1)内部控件的实用方法与html控件相同,它们映射到html元素并通过实用runat=“server”属性在服务器上执行。
不同的地方,用如下代码表示:
<!--html控件代码 --> <input type="checkbox" > <input type="radio" > <!--web控件代码 --> <asp:CheckBox> <asp:Radio>
(2)内部控件包括:
文本输入:
<!--单行输入 --> <asp:textbox id="name" runat="server"/> <!--多行输入--> <asp:textbox id ="add" TextMode="MultiLine" rows="10" Columns="10" runat="server"/> <!--密码输入--> <asp:textbox id="pwd" TextMode="Password" runat="server"/>
控制转移:
包括:Button(将数据回发到服务器)
ImageButton(与Button相同用于将数据传回服务器)
Hyperlink(在页面之前导航)
LinkButton (将数据保存在服务器或访问服务器上的数据)
比较:Hyperlink速度最快,在客户端直接运行页面之间的超链接,LinkButton要传回服务器进行处理。
(3)选择:
包括:CheckBox(复选框) RadioButton(单选框)ListBox(列表框) DropDownList (多选项下拉列表)其实这些控件的使用方法与简单控件类似,不过多介绍。
2、页面重用类控件:
页面重用不知道在这里这么说是不是合适,只是因为用户控件和自定义控件都是asp.net页面重用的的方式。
(1)web用户控件
包含一个用户界面页和一个代码隐藏文件与web窗体页相似,只是用户控件不包含<HTML><BODY><FORM>;web用户控件在项目中点击添加web用户控件即可,创建成功后直接拖放即可引用,web控件包含的属性有:TagPrefix,TagName,Src。
(2)web自定义控件
web自定义控件是在服务器上运行的编译组件,并将用户界面和其他相关功能封装在可复用包中,其中包含标准asp.net服务器控件的所有设计时功能。
两者的比较:
web用户控件 |
web自定义控件 |
易于创建 |
难于创建 |
为使用可视化设计工具的使用者提供有限的支持 |
为使用者提供完全的可视化设计工具支持 |
每个应用程序中需要控件的一个单独副本 |
仅在全局程序集缓存中需要控制的单个副本 |
不能添加到工具箱 |
可以添加到工具箱 |
适用于静态布局 |
适用于动态布局 |