• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

ASP.NET中基类页的设计和使用

发布: 2008-4-08 10:44 | 作者: 不详 | 来源: 天极Yesky | 查看: 28次 | 进入软件测试论坛讨论

领测软件测试网 在Asp.net业务系统的开发过程中,为了保证页面风格的一致性以及减少重复代码的编写,我们需要引入基类页的概念,即:定义一个基类页,让所有的页面都继承这个基类,并在该基类页中加入公用的属性和方法。

  实际使用时,按照功能页面划分,可以定义多个基类页,如:

  class FormBase
  class BizFormBase :FormBase
  class ViewFormBase : BizFormBase
  class EditFormBase : BizFormBase
  class QueryFormBase : FormBase

  FormBase:基类页中的根,提供与业务无关的服务,如:URL重写,日志等。
  BizFormBase:加入和业务相关的属性,如:该页面的当前业务对象ID等。
  ViewFormBase,:EditFormBase:实现具体的查看,编辑功能。
  QueryFormBase:实现对通用查询页面的封装。

  从面向对象的角度看,基类页与普通的基类,继承类设计其实区别并不大,都要在基类中编写公用的属性方法,并通过虚函数、事件等方式让继承类重写或响应。所不同的是基类页的设计过程受到所在环境的约束。在WinForm环境下,我们可以预先定义好窗体的公用元素,如工具条,默认的表格以及DataSource控件等。而到了Asp.net下的WebForm,则无法实现界面一级的继承,同时加入了状态管理等要求。

  为了帮助大家理解,我们以查询基类页的设计过程来分析:

  一个最简单的查询页面会包括三部分,多个查询条件文本框,查询按钮,以及表格。同时查询页会和一个数据访问组件关联,当点查询时,会把查询条件转成where语句提交给数据访问组件。

  QueryPeopleForm
  OnQueryButtonClick()
  {
   string peopleName = txtPeopleName.Text;
   string peopleAge = txtPeopleAge.Text;

   string sql;
   sql = string.Format(“Name Like‘%{0}%’and Age = {1}, PeopleName,   peopleAge);

   PeopleManager manager = new PeopleManager();
   this.gridMain.DataSource = manager.GetDataTable(sql);
   this.gridMain.DataBind();
  }

  当点击查询按钮时,我们做了以下三件事:

  1、获取查询条件
  2、提交查询
  3、将查询结果绑定到表格

  这儿的提交查询和绑定在不同的查询页面都是一样的,于是我们首先把2,3放到基类页中,并提供这样一个方法:void QueryAndBind(IManager manager, string sql); 这儿要定义IManager接口,让所有的Manager都实现该接口,这样基类页就无需知道具体的Manager,只要调用IManager.GetDataTable方法,然后绑定表格到即可。

  使用基类页后的代码:

  QueryPeopleForm : QueryFormBase
  OnQueryButtonClick()
  {
    string peopleName = txtPeopleName.Text;
   string peopleAge = txtPeopleAge.Text;
   sql = string.Format(“Name Like‘%{0}%’and Age = {1}, PeopleName, peopleAge);
   QueryAndBind(new PeopleManager(), sql);
  }

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/

21/212>

关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网