用反射将业务对象绑定到 ASP.NET 窗体控件

http://tech.ddvip.com   2007年05月22日    社区交流

本文详细介绍用反射将业务对象绑定到 ASP.NET 窗体控件

  简化和缩短窗体代码

  在以上代码中,对每个控件进行显式转换,并将其设置为窗体控件的正确属性。根据属性和窗体控件的数量,这部分代码可能会变长并难以管理。代码还应包含类型转换的错误更正和 ListControl,这将进一步增加复杂性。即使窗体是由代码生成工具(例如 Eric J. Smith 的优秀的 CodeSmith)生成的,当需要任何自定义逻辑关系时,很容易引入错误。

  使用反射,可以仅使用单行代码便将业务对象的所有属性绑定到相应的窗体控件,从而减少代码的行数并增强可读性。完成反射系统的建立后,以上代码将简化为:

protected void Page_Load(Object Src, EventArgs E) {
  if (!IsPostBack) {
 Document document =
Documents.GetDocument(Request.QueryString["DocumentID"]);
 FormBinding.BindObjectToControls(document);
  }
}
protected void Save_Click(Object Src, EventArgs E) {
  Document document =
Documents.GetDocument(Request.QueryString["DocumentID"]);
  FormBinding.BindControlsToObject(document);
  Documents.Update(document);
}

  此代码可用于所有标准的 ASP.NET 控件(TextBox、DropDownList、CheckBox 等)和许多第三方控件(例如 Free TextBoxCalendar Popup)。无论有多少业务对象属性和窗体控件,这一行代码都能提供所需的全部功能,只要窗体控件的 ID 与业务对象属性名相匹配。

来源:microsoft.com    作者:John Dyer    责编:豆豆技术应用

正在加载评论...