- 卡卡6.0使用手记
- 2008-08-11
- ASP.net请求处理过程
- 2008-08-06
- 线程同步对象方法
- 2008-07-29
- .net编程之路(四)
- 2008-07-28
- .net编程之路(三)
- 2008-07-25
- .net编程之路(二)
- 2008-07-24
- 脱机数据的排序、搜索和筛选
- 2008-07-24
- Asp.net 2.0的心得
- 2008-07-23
- .net的编程之路(一)
- 2008-07-23
- 基于多路移相时钟的瞬时测频模块设计
- 2008-07-22
|
在ASP.net业务系统的开发过程中,为了保证页面风格的一致性以及减少重复代码的编写,我们需要引入基类页的概念,即:定义一个基类页,让所有的页面都继承这个基类,并在该基类页中加入公用的属性和方法。 实际使用时,按照功能页面划分,可以定义多个基类页,如:
FormBase:基类页中的根,提供与业务无关的服务,如:URL重写,日志等。 从面向对象的角度看,基类页与普通的基类,继承类设计其实区别并不大,都要在基类中编写公用的属性方法,并通过虚函数、事件等方式让继承类重写或响应。所不同的是基类页的设计过程受到所在环境的约束。在WinForm环境下,我们可以预先定义好窗体的公用元素,如工具条,默认的表格以及DataSource控件等。而到了Asp.net下的WebForm,则无法实现界面一级的继承,同时加入了状态管理等要求。 为了帮助大家理解,我们以查询基类页的设计过程来分析: 一个最简单的查询页面会包括三部分,多个查询条件文本框,查询按钮以及表格。同时查询页会和一个数据访问组件关联,当点查询时,会把查询条件转成where语句提交给数据访问组件。
当点击查询按钮时,我们做了以下三件事: 1、获取查询条件 这儿的提交查询和绑定在不同的查询页面都是一样的,于是我们首先把2,3放到基类页中,并提供这样一个方法:void QueryAndBind(IManager manager, string sql);这儿要定义IManager接口,让所有的Manager都实现该接口,这样基类页就无需知道具体的Manager,只要调用IManager.GetDataTable方法,然后绑定表格到即可。 使用基类页后的代码:
这儿的代码少了,但仍有问题,当查询条件变化后,每次拼查询语句的工作即枯燥又容易出错,那么我们加入一个Query类,以简化这儿的操作:
把拼Sql的工作放在Query类中做调用者只要声明查询字段,对应的值和比较类型即可。
|
