用事件来建立可重用的ASP.NET控件

ZDNet软件频道 时间:2003-05-08 作者:BUILDER.COM |  我要评论()
本文关键词:
这里演示的技术代表了一类可以在以数据为中心的商业应用程序中可重用的方式。通过创建封装了实体列表视的用户控件和封装了单个实体编辑命令的用其它用户控件的方法,你可以快速开发新的以数据为中心的应用程序。
本文译自Builder.com,未经许可请勿转载网络应用程序的开发从以往的ASP环境迁移到ASP.NET环境的转换过程也是网页如何建立的思路的转换过程。开发者尝试在服务器端使用功能封装,包括(或者在某些情况下)在整个应用程序中都可以重用的ActiveX控件。现在,开发者可以把网页的各部分构建成较小的代码片断,它可以响应和产生事件,我们称之为用户控件(User Controls)。

为了解释如何在用户控件所封装的行为中使用事件,我先演示一下如何建立一个基于网络的、数据驱动的(data-driven)商务应用程序,该程序包括若干个页面,用户可以通过它们来返回项目清单、用户对个人项目的选择以及编辑项目详细资料。这个功能相当简单,也是绝大多数商业应用程序都有的。无论你选择哪一种方法来实现,一个网页的功能都应该可以被其它网页所重用。

用户控件是如何工作的

用户控件是网页的一部分,它有自己的HTML元素以及与之相关的代码。你可以通过放置通用用户控件来快速建立网页,然后用代码把它们整合起来。在我给出的例子中,它在逻辑上可以清晰的分成三个部分:

  • EmployeeList.ascx——一个用来保持ASP.NET DataGrid的控件,它列出了项目清单。
  • EmployeeDetails.ascx——这个控件保持一个表单,该表单用于让用户修改某个项目的详细资料。
  • Employees.aspx——这个.aspx页用来管理它的子控件的状态。

建造网页

我将通过举例来演示这个技巧。在这个简单的应用程序中,我将允许用户从雇员(Employees)表中返回一个雇员清单。这个程序提供给用户一个页面,该页面包含了一个DataGrid控件,该控件显示雇员列表,用户可以从中选择某个特定的雇员,该页面就会显示一个有关此雇员的详细信息的表单。该表单有两个按钮:一个用来向数据库提交对雇员信息的改动(“提交”按钮),另一个用来取消对数据库的更新(“取消”按钮)。

Employees.aspx页的Page_Load事件(为了简短起见,我在这里就不详细讨论该事件了)用来设置用户控件的初始状态。由于我希望对某个特定雇员的选择发生在显示该雇员详细信息之前,所以EmployeeList.ascx控件的初始值设定为可见(visible),而EmployeeDetails.ascx控件的初始值则设定为不可见。后者在用户选定某特定雇员之前一直保持不可见状态,对雇员的选择发生在EmployeeList.ascx中的DataGrid控件之中。为了显示初始视图,Page_Load事件把EmployeeList.ascx控件的属性设定为合适的值,然后调用EmployeeList.GetEmployeesGetEmployees方法返回一个填充了雇员信息(从数据库)的DataSet,然后该DataSet绑定到名为EmployeeGrid的DataGrid上。

理想情况下,雇员列表和用户选定的雇员的详细信息应该显示在同一个表单中。然而,用于编辑雇员详细信息的表单是一个独立的用户控件,这样,这该如何实现?这就是.NET事件功能大显身手的地方了。


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