ASP.NET教程第二讲 ASP.NET控件
|
通常谈一个学科,我们老是说,它入门很简单的嘛,ASP.net也是。ASP.net提出一个概念,就是认为WEB页面,也是一个窗体,所以,学习过面向对象编程的VB VC BC Dephi的朋友,学起来就简单多了。 一个ASP.net页面的后缀名是".aspx",所以,IIS在你安装完ASP.net时,也会把Default.aspx作为你的默认首页,网管朋友一定要注意了。 ASP.net 是后天编译运行的,只是在第一次运行时编译,所以,以后的运行速度比ASP执行快。 2.2 写自己第一个ASP.net的程序 激动吗?很快就开始写第一个程序了,一般学任何语言都要Hello World!一下吧,那我们也来。 在这之前写要说一下,ASP.net的程序可以用任何东西写,甚至是Windows的记事本,当初基督山也很疑惑,要不要用 V Interdev .net 来编写啊,事实证明,那玩意没手写好用。 <%@ Page Language="VB"%> "说明一下你使用的哪一种语言来写.net的,如果是VB的话,这行可以不写。
命名 myfirstasp_net.aspx 来我们运行一下,果然,Hello World! 注意,Response.Write 语句,我们原来写成 Response.Write "Hello World!"也是正确的,但在.net中,必须用"("和")"。 2.3 HTML 控件 ASP.net 框架中的第一组控件称为 HTML 控件。这些控件位于 System.Web.UI.HtmlControls 命名空间中,是从 HtmlControl 基类中直接或间接派生出来的。图 1 说明了 HTML 控件的类层次结构。 ![]() 图 1. ASP HTML 控件 几乎所有对于任何包含 runat="server" 属性的标记,都会为其生成 HTML 控件。例如,下面的 HTML 可创建一个名为"textBox1"的 HtmlInputText 控件的实例:
下表中列出了 HTML 控件以及对应的 HTML 标记。
对于现有的ASP程序,如果向ASP.net移植,毫无疑问HTML控件将发挥最大的作用。
[1] [2] [6] [7]
2.4 Web 控件 软件开发网 www.mscto.com
在上例中,"asp"是标记前缀,会映射到 System.Web.UI.WebControls 命名空间。 ![]() 图 2. ASP Web 控件 文本显示 Label 控件用于在页面中显示只读的静态文本或数据绑定的文本:
输入控件 Web 控件组中包含的一些控件,允许最终用户输入将由服务器上的页面处理的数据。 TextBox 控件用于提供文本编辑能力。与 Label 控件相似,这里的文本也可以是数据绑定的。TextBox 控件支持多种模式,可以用来实现单行输入、多行输入和密码输入:
CheckBox 控件用于生成能够在选中和清除这两种状态间切换的复选框:
RadioButton 控件与 CheckBox 控件相似,但使用时通常会与其它 RadioButton 控件组成一组,以提供一组互斥的选项:
[1] [2] [6] [7]
2.4 Web 控件
在上例中,"asp"是标记前缀,会映射到 System.Web.UI.WebControls 命名空间。 ![]() 图 2. ASP Web 控件 文本显示 Label 控件用于在页面中显示只读的静态文本或数据绑定的文本:
输入控件 Web 控件组中包含的一些控件,允许最终用户输入将由服务器上的页面处理的数据。 TextBox 控件用于提供文本编辑能力。与 Label 控件相似,这里的文本也可以是数据绑定的。TextBox 控件支持多种模式,可以用来实现单行输入、多行输入和密码输入:
CheckBox 控件用于生成能够在选中和清除这两种状态间切换的复选框:
RadioButton 控件与 CheckBox 控件相似,但使用时通常会与其它 RadioButton 控件组成一组,以提供一组互斥的选项:
[1] [2] [6] [7] 软件开发网 www.mscto.com
图像显示
版面控件
Table 控件与相关的 TableRow 和 TableCell 控件相结合,可以用来以编程的方法创建表或表式版面布局:
日期选择
列表绑定控件
DataList 控件也使用模板来显示与之绑定的数据源的内容。此外,它还提供了自定义外观格式和布局的功能:
DataGrid 控件能够创建格式丰富的列表版式,用来显示与之绑定的数据源的内容。它提供了对排序、编辑和分页的支持。
软件开发网 www.mscto.com [1] [2] [6] [7]
|
[1] [2] [6] [7]
2.5 HTML 控件,WEB控件,都可以产生一样的效果,到底谁优谁劣?
在开发这些控件时,我们反复地问自己,是否真的有必要同时提供具有一些重复功能的 HTML 控件组和 Web 控件组。您肯定也想了解 HTML 控件和 Web 控件究竟有什么异同,以及它们各自适用的场合。
这两组控件的异同可以通过以下方面来比较。
控件抽象
HTML 控件不具备任何抽象能力。每种控件与 HTML 标记都是一一对应的(请参见表 1)。
Web 控件创建了更高级别的抽象,它们没有任何对应的 HTML 标记(如 Calendar 和 DataGrid)。因为它们不直接映射为 HTML 标记,所以 Web 控件还能够在适当的场合起到合并功能的作用(例如用一个 TextBox 控件来代替多个标记)。这种抽象为使用第三方提供的种类丰富的控件工具箱打开了方便之门。
对象模型
HTML 控件提供了以 HTML 为中心的对象模型。每种控件都包括一个属性集,可以使用该属性集来控制标记的属性。这个属性集使用了字符串名/值对,并且不是强类型的。
在使用 HTML 控件时,您的编程方式与使用传统的 ASP 进行编程十分类似。因而,HTML 控件提供了一条快捷的移植途径 - 可以通过添加一个 runat="server" 属性来将一个标记转变为一个服务器控件。
Web 控件提供了基于表单的、类似于 Visual Basic 的编程模式。它们也提供了属性集,但它们的主要目标在于提供一种格式丰富、类型安全且具有一致性的对象模型。每种 Web 控件都包含一组标准的属性,如 ForeColor、BackColor、Font 等。
这种对象模型还在像 Visual Studio .NET 这样的设计工具中提供了更丰富的设计时体验。
目标浏览器
HTML 控件不会自动检测请求页面的浏览器的能力,也不会修改它们提供的 HTML。在使用这组控件时,您要负责确保您的页面能同时在高级和低级浏览器上工作。
Web 控件能够自动对它们生成的结果进行调整,以确保输出结果在高级浏览器和低级浏览器上的工作同样出色。Web 控件还能够针对不同的浏览器提供不同的行为,从而充分发挥浏览器的潜力。例如,validation 控件还可以通过客户端的脚本来创建用于高级浏览器的具有高度交互性的页面。
[1] [2] [6] [7]
对生成的 HTML 的控制
HTML 控件允许您完全控制所显示的内容以及发送到客户机浏览器的内容。
Web 控件提供了更为丰富的对象模型,以及适应多种浏览器的能力。因而,它们没有提供对输出结果的相同程度的控制能力。
在您开发 Web 应用程序时,您可以根据这两组控件的能力以及您的需求来从中进行选择。您还可以选择在同一页上混合使用这两组控件,使用一种类型的控件并不妨碍您同时使用另一种类型的控件。
2.6 修饰和打扮你的控件
<span style="font: 12pt verdana; color:orange;font-weight:700" runat="server">
This is some literal text inside a styled span control
</span>
注意画线部分,漂亮的字
软件开发网 www.mscto.com
<button style="font: 8pt verdana;background-color:lightgreen;border-color:black;width:100" runat="server">Click me!</button>
漂亮的按钮,有圆角,很Cool,不用自己用Photoshop做了
<input type="text" value="One, Two, Three" style="font: 14pt verdana;background-color:yellow;border-style:dashed;border-color:red;width:300;" runat="server"/>
虚线框哦,也不用Photoshop就可以做了,style很强大。
asp:Calender 控件中
<form runat="server">
<ASP:Calendar runat="server"
BackColor="Beige"
ForeColor="Brown"
BorderWidth="3"
BorderStyle="Solid"
BorderColor="Black"
Height="450"
Width="450"
Font-Size="12pt"
Font-Name="Tahoma,Arial"
Font-Underline="false"
CellSpacing=2
CellPadding=2
ShowGridLines=true
/>
</form>
注意有颜色部分,这部分就是对控件的修饰,它的作用,就是让你的Web窗体更漂亮。
再给一个例子
<ASP:Calendar CssClass="calstyle" runat="server"
BackColor="Beige"
ForeColor="Brown"
BorderWidth="3"
BorderStyle="Solid"
BorderColor="Black"
Height="450"
Width="450"
Font-Size="12pt"
Font-Name="Tahoma,Arial"
Font-Underline="false"
CellSpacing=2
CellPadding=2
ShowGridLines=true
TitleStyle-BorderColor="darkolivegreen"
TitleStyle-BorderWidth="3"
TitleStyle-BackColor="olivedrab"
TitleStyle-Height="50px"
DayHeaderStyle-BorderColor="darkolivegreen"
DayHeaderStyle-BorderWidth="3"
DayHeaderStyle-BackColor="olivedrab"
DayHeaderStyle-ForeColor="black"
DayHeaderStyle-Height="20px"
DayStyle-Width="50px"
DayStyle-Height="50px"
TodayDayStyle-BorderWidth="3"
WeekEndDayStyle-BackColor="palegoldenrod"
WeekEndDayStyle-Width="50px"
WeekEndDayStyle-Height="50px"
SelectedDayStyle-BorderColor="firebrick"
SelectedDayStyle-BorderWidth="3"
OtherMonthDayStyle-Width="50px"
OtherMonthDayStyle-Height="50px"
/>
是不是更漂亮,设置也很简单,一看就能明白。
2.7 最重要的两个注意事项
注意,.net支持的语言不是VBScript 而是VB,所以声明变量的时候,不是简单的Dim就行了。
注意 你写程序有99.9999999999999999%的可能不能正常显示中文,解决的方法就是:在D:WINNTMicrosoft.NETFrameworkv1.0.2204(具体目录有可能不是这个,自己看着像就是了)有一个config.web的文件,在这个文件里面把 <globalization requestencoding="iso-8859-1" responseencoding="iso-8859-1" />改为<globalization requestencoding=" gb2312" responseencoding="gb2312"/> 好了,去体验一下中文的乐趣(同时大骂M$,应该把作为缺省语言啊!)
[1] [2] [6] [7]









