使用事件建立可复用ASP.NET控件

ZDNet软件频道 时间:2003-03-11 作者:BUILDER.COM |  我要评论(8)
本文关键词:
以前开发人员努力使用服务器端或者在某些情况下自定义的ActiveX控件将功能包装,ActiveX控件可以在整个应用程序中复用。现在,开发人员可以将部分Web页面建立成较小的功能性代码片断,每一段有其响应和引起事件的功能,这就是用户控件。
本文译自Builder.com从以前的ASP开发模式转变到ASP.NET建立Web应用程序的方法要求改变对Web页面的构造的认识。以前开发人员努力使用服务器端或者在某些情况下自定义的ActiveX控件将功能包装,ActiveX控件可以在整个应用程序中复用。现在,开发人员可以将部分Web页面建立成较小的功能性代码片断,每一段有其响应和引起事件的功能,这就是用户控件。

为了说明在用户控件中包装行为的事件的使用,我将演示怎样建立一个基于Web的、数据驱动的商业应用程序,该应用程序包含几个页面,可以返回一个项目列表、选择单个项目以及编辑那个项目的细节。无论你选择的实现方法是什么,一个页面的功能都应该可以在应用程序的其余部分重用。

用户控件怎样工作

用户控件是页面的一个片断,它有自己的HTML元素以及与那些元素交互的代码。你可以通过将用户控告件放到一个页面上然后使用代码将它们组合起来从而快速形成一个页面。在我的这个例子中,将页面划分成三个独立的部分是比较合理的:

  • EmployeeList.ascx—容纳ASP.NET DataGrid的控件,它用于列出项目。
  • EmployeeDetails.ascx—容纳编辑一个特定项目细节的窗体的控件。
  • Employees.aspx—管理所有组成它的控件的状态的.aspx页面。

组织页面的结构

我将使用示例Northwind数据库演示这个技术。在这个简单的应用程序中,我充许用户返回一个Employees表中的员工的列表。通过提供给用户一个包含由员工数据填充的DataGrid的页面,用户可以选择一个特定的员工,然后页面就会出现一个具有所选员工的详细信息的表单。这个表单有两个按钮:一个用于提交对数据库做的改动,另一个用于取消更新。

出于对篇幅的考虑,这里我没有给出Employees.aspx页面的Page_Load事件,它负责设置用户控件的初始状态。因为我想在显示员工的详细信息前选择一个员工,所以最开始EmployeeList.ascx控件是可见的,而EmployeeDetails.ascx则是不可见的。后者直到从EmployeeList.ascx控件的ASP.NET DataGrid控件中选择一个员工之后才可见。要显示初始视图,Page_Load事件处理程序设置EmployeeList.ascx控件的适当的属性,然后调用EmployeeList.GetEmployees。GetEmployees方法返回一个由数据库中的员工填充的DataSet,并将这个DataSet与一个叫做EmployeeGrid的DataGrid绑定。

我们希望得到的效果是让用户从列表中选择一个员工,然后将选择的员工的详细信息显示到同一个表单上。然而,用于编辑员工详细信息的表单是一个单独的用户控件,那么怎样才能实现这种效果呢?这时.NET事件功能性就派上用场了。


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134