孙永杰著作《ASP.
NET开发》
第5章
Web窗体的基本控件
与ASP不同的是,ASP.NET提供了大量的控件,这些控件能够轻松的实现一个交互复杂的Web应用功能。在传统的ASP开发中,让开发人员最为烦恼的是代码的重用性太低,以及事件代码和页面代码不能很好的分开。而在ASP.NET中,控件不仅解决了代码重用性的
问题,对于初学者而言,控件还简单易用并能够轻松上手、投入开发。
5.1控件的属性
每个控件都有一些公共属性,例如字体颜色、边框的颜色、样式等。在VisualStudio2008中,当开发人员将鼠标选择了相应的控件后,属性栏中会简单的介绍该属性的作用。如图5-1所示。
图5-1
控件的属性
属性栏用来设置控件的属性,当控件在页面被初始化时,这些将被应用到控件。控件的属性也可以通过编程的方法在页面相应代码区域编写,示例代码如下所示。
protectedvoidPage_L
oad(objectsender,EventArgse){Label1.Visible=false}
;//在Page_Load中设置Label1的可见性
上述代码编写了一个Page_Load(页面加载事件),当页面初次被加载时,会执行Page_Load中的代码。这里通过编程的方法对控件的属性进行更改,当页面加载时,控件的属性会被应用并呈现在浏览器。
孙永杰著作《ASP.NET开发》
5.2简单控件
ASP.NET提供了诸多控件,这些控件包括简单控件、数据库控件、登录控件等强大的控件。在ASP.NET中,简单控件是最基础也是经常被使用的控件,简单控件包括标签控件(Label)、超链接控件(HyperLink)以及图像控件(Image)等。
5.2.1
标签控件(Label)
在Web应用中,希望显式的文本不能被用户更改,或者当触发事件时,某一段文本能够在运行时更改,则可以使用标签控件(Label)。开发人员可以非常方便的将标签控件拖放到页面,拖放到页面后,该页面将自动生成一段标签控件的声明代码,示例代码如下所示。
xml:namespace prefix = asp />
上述代码中,声明了一个标签控件,并将这个标签控件的ID属性设置为默认值Label1。由于该控件是服务器端控件,所以在控件属性中包含runat=“server”属性。该代码还将标签控件的文本初始化为Label,开发人员能够配置该属性进行不同文本内容的呈现。注意:通常情况下,控件的ID也应该遵循良好的命名规范,以便维护。同样,标签控件的属性能够在相应的.cs代码中初始化,示例代码如下所示。
protectedvoidPage_PreInit(objectsender,EventArgse){Label1.Text="HelloWorld";}
//标签赋值
上述代码在页面初始化时为Label1的文本属性设置为“HelloWorld”。值得注意的是,对于Label标签,同样也可以显式
HTML样式,示例代码如下所示。
protectedvoidPage_PreInit(objectsender,EventArgse){Label1.Text="HelloWorld
AHtmlCode";//输出HTMLLabel1.Font.Size=FontUnit.XXLarge;//设置字体大小}
上述代码中,Label1的文本属性被设置为一串HTML代码,当Label文本被呈现时,会以HTML效果显式,运行结果如图5-2所示。
图5-2
Label的Text属性的使用
109
孙永杰著作《ASP.NET开发》如果开发人员只是为了显示一般的文本或者HTML效果,不推荐使用Label控件,因为当服务器控件过多,会导致性能问题。使用静态的HTML文本能够让页面解析速度更快。
5.2.2
超链接控件(HyperLink)
超链接控件相当于实现了HTML代码中的“”效果,当然,超链接控件有自己的特点,当拖动一个超链接控件到页面时,系统会自动生成控件声明代码,示例代码如下所示。
HyperLink
上述代码声明了一个超链接控件,相对于HTML代码形式,超链接控件可以通过传递指定的参数来访问不同的页面。当触发了一个事件后,超链接的属性可以被改变。超链接控件通常使用的两个属性如下所示:ImageUrl:要显式图像的URL。NavigateUrl:要跳转的URL。1.ImageUrl属性.设置ImageUrl属性可以设置这个超链接是以文本形式显式还是以图片文件显式,示例代码如下所示。
HyperLink
上述代码将文本形式显示的超链接变为了图片形式的超链接,虽然表现形式不同,但是不管是图片形式还是文本形式,全都实现的相同的效果。2.Navigate属性.Navigate属性可以为无论是文本形式还是图片形式的超链接设置超链接属性,即即将跳转的页面,示例代码如下所示。
HyperLink
上述代码使用了图片超链接的形式。其中图片来自“http://www.shangducms.com/images/cms.jpg”,当点击此超链接控件后,浏览器将跳到URL为“http://www.shangducms.com”的页面。3.动态跳转.在前面的小结讲解了超链接控件的优点,超链接控件的优点在于能够对控件进行编程,来按照用户的意愿跳转到自己跳转的页面。以下代码实现了当用户选择QQ时,会跳转到腾讯网站,如果选择SOHU,则会跳转到SOHU页面,示例代码如下所示。
protectedvoidDropDownList1_SelectedIndexChanged(objectsender,EventArgse){if(DropDownList1.Text=="qq")//如果选择qq{HyperLink1.Text="qq";HyperLink1.NavigateUrl="http://www.qq.com";}110//文本为qq//URL为qq.com
孙永杰著作《ASP.NET开发》
else{HyperLink1.Text="sohu";HyperLink1.NavigateUrl="http://www.sohu.com";}}//文本为sohu//URL为sohu.com//选择sohu
上述代码使用了DropDownList控件,当用户选择不同的值时,对HyperLink1控件进行操作。当用户选择qq,则为HyperLink1控件配置连接为http://www.qq.com。注意:与标签控件相同的是,如果只是为了单纯的实现超链接,同样不推荐使用HyperLink控件,因为过多的使用服务器控件同样有可能造成性能问题。
5.2.3
图像控件(Image)
图像控件用来在Web窗体中显示图像,图像控件常用的属性如下:AlternateText:在图像无法显式时显示的备用文本。ImageAlign:图像的对齐方式。ImageUrl:要显示图像的URL。当图片无法显示的时候,图片将被替换成AlternateText属性中的文字,ImageAlign属性用来控制图片的对齐方式,ImageUrl属性用来设置图像连接地址。而同样,HTML中也可以使