处理服务器控件事件
每一个asp.net服务器控件都具有对象模型的特点,包含属性、方法和事件。Asp.net开发者可以使用这个对象模型来动态修改页面,以及与页面交互。
下面的例子演示了asp.net页面开发者如何通过处理<asp:button runat=server>控件的OnClick事件,来操纵<asp:label runat=server> 控件的Text 属性。
这个简单的例子在功能上等于前面介绍的"Intro3" 例子。然而,你却可以发现基于服务器控件的这个版本是多么的简单而清晰!
使用自定义的服务器端控件
ASP.NET提供了45个内置的服务器控件以供使用 (详细内容参阅 Web Forms 控件参考)。除了使用内置的ASP.NET 控件以外,开发者也可以使用第三方提供的控件。
下面的例子展示了一个简单的日历控件(Calenda)。这个控件在页面中使用<acme:calendar runat=server>标签来声明。请注意在页面顶端的<% Register %>使用TagPrefix注册"Acme",使用Namespace说明执行控件的名称空间。Asp.net页面分析器将在运行时刻使用这个名称空间来装载Calendar控间类的实例。
在这个例子中,日历控件被设计为在Internet Explorer 5.5以上版本中执行“高级运行”,在其他浏览器上执行“低级运行”。在asp.net提供的内置服务器控件中,都可以实现这种对浏览器版本的监测。对于IE5.5以上版本,他生成DHTML输出。DHTML输出不要求服务器与客户端的循环往复。对于其他版本的浏览器,这个控件生成标准的HTML3.2文档。在交互的时候,需要客户端和服务器端的循环往复。
重要提示:页面设计者在编写代码的时候,不需要考虑浏览器在访问页面的时候,是“高级运行”还是“低级运行”。Calendar 控件自己封装了处理不同浏览器请求的能力。
列表、数据、和数据绑定
ASP.NET内置了一套数据表格和列表的控件,可以提供自定义的用户接口驱动,来实现对数据库或其它数据源的请求。例如,下面的例子演示了<asp:datagrid runat=server>控件如何使用SQL数据库查询语言来实现对BOOK信息集合的数据绑定。
<asp:datagrid runat=server> DataGrid控件使用传统的表格接口,提供了一种简单而快速的显示数据结果的途径。此外,ASP.NET开发者也可以使用<asp:DataList runat=server> DataList控件以及自定义的ItemTemplate模板来定制数据的显示方式。
注意到<asp:datalist runat=server>控件允许最终用户精确的控制列表中每一个项目的结构和外观显示(使用ItemTemplate模板属性)。该控件同时自动的处理两列之间内容的换行(用户可以通过它的RepeatColumns属性来控制列的数目)
下面的例子提供了一种<asp:datalist runat=server>控件隔行交替显示的样子。
注意这里的控件、数据模型和页面用户都与前一个例子相同。差别在于,本例在代码中声明了其他的模板。
表单验证控件
ASP.NET Web Forms 页框架提供了一套服务器验证控件,它容易使用而功能强大,用来检查客户端表单输入的错误,并且(如果必要的话)可以向用户显示提示信息。
在页面中增加服务器验证控件就像使用其他服务器控件一样。不同的验证情况有不同的验证控件,例如输入范围检查或者模式匹配等等。使用RequiredFieldValidator验证控件可以确保用户不会跳过一个应该输入数据的字段。
下面的例子演示了如何在页面中使用<asp:requiredfieldvalidator runat=server> 控件来验证TextBox 和 DropDownList 控件的内容。
C# Intro11.aspx
[运行] | [源代码]
注意验证控件也提供了“高级运行”和“低级运行”支持。高版本浏览器模式在服务器端和客户端执行(使用JAVA脚本和DHTML),低板本浏览器模式仅仅在服务器端执行验证。两种情况下的程序模式是一样的。
注意,ASP.NET页面开发者可以在运行时可随时检查Page.IsValid属性,来确定是否该页面的所有验证控件都通过。这就提供了是否进行商务逻辑处理的一个简单的方法。例如,下面的例子对特定分类执行数据库查询的时候,首先执行Page.IsValid检查。
Web Forms代码分离
ASP.NET支持两种创作动态页面的方法。第一种是如前面的例子中演示的那样,页面代码在同一个.aspx文件中声明。另一个方法----人们熟知的代码分离,可以让页面代码更加整洁,把程序代码从HTML内容中分离出来,成为一个完整的单独的文件。
下面的例子演示了利用代码分离技术编写ASP.NET页面
本章小结
1. ASP.NET提供了一种简单而功能强大的方法,来建立动态WEB用户接口
2. ASP.NET Web Forms 页可以自动适应任何浏览器客户(不需要脚本库或者COOKIE的支持)
3. ASP.NET Web Forms 页提供与现有ASP页面的语法兼容
4. ASP.NET 服务器控件提供了封装常用功能的简易方法。
5. ASP.NET 提供了45个内置的服务器控件.开发者也可以使用第三方提供的控件。
6. ASP.NET 服务器控件能够自动设计高级动态模式和低级浏览器HTML模式
7. ASP.NET 模板可以轻松的定制列表服务器控件的外观,从而定制页面数据显示的外观。
8. ASP.NET 验证控件可以方便的进行客户端或服务器端数据的验证