处理事件
最后一步就是让Employees.aspx页面有处理EmployeeList控件所产生的事件的能力。Employees.aspx页面需要登记该事件并提供一个事件处理函数来响应EmployeeList’s事件。你可以通过向InitializeComponent 方法添加下面的代码来实现这一点:
EmployeeList1.EmployeeSelected += new
EmployeeCommandEventHandler(this.Employee_Selected);
现在,Employee_Selected事件处理函数可以从EmployeeCommandEventArgs对象中得到EmployeeID。它把该值传递到EmployeeDetails.ascx用户控件的GetEmployeeInfo方法中去并把“可视”属性设置为“真”来显示雇员详细资料,如下所示:
protected void Employee_Selected(
object sender, EmployeeCommandEventArgs e)
{
int EmployeeID = e.EmployeeID;
EmployeeDetails1.GetEmployeeInfo(EmployeeID);
EmployeeDetails.Visible = true;
}
GetEmployeeInfo方法接收这个参数,查找被选中雇员的详细信息,并更新对应控件。
当然,为了完善这个简单的应用程序,我还需要编写“取消”按钮和“提交”按钮的事件并向Employees.aspx网页传送这些事件。由于用来更新被选中雇员的详细信息保存在EmployeeDetails.ascx 控件中,这两个按钮控件所产生的事件都应该保存这些数据。在这种情况下,你可以使用通用的EventArgs类和EventHandle代表,就像前面所提到的那样。“取消”按钮和“提交”按钮的事件处理函数只需简单的隐藏EmployeeDetails.ascx控件,然后刷新Employeelist.ascx控件中的数据即可。当然,“提交”按钮还需要通知雇员数据库数据的改变。
可重用的方式
这里演示的技术代表了一类可以在以数据为中心的商业应用程序中可重用的方式。通过创建封装了实体列表视的用户控件和封装了单个实体编辑命令的用其它用户控件的方法,你可以快速开发新的以数据为中心的应用程序。当你创建页面时,你可以简单的设计这些页面的用户控件,然后用这些控件产生的事件把它们整合成一个整体。这个技术利用了.NET矿建中最重要的一个特点——创建对象并完整封装它们行为的能力。
责任编辑:炒饭
欢迎评论或投稿
|