中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 | 网通镜像
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > .NET > 其他
ASP.NET中基类页的设计和使用(2)
作者:佚名 时间:2007-09-05 15:23 出处:yesky 责编:月夜寒箫
              摘要:ASP.NET中基类页的设计和使用(2)

到这一步,我们的基类页已经很好用了,但还有一个小问题,也就是前面说的,在WebForm中无法实现界面级的继承,那么基类页的QueryAndBind方法,将无法知道查询结果要绑定到哪一个表格,这时我们的做法是在基类页中声明DefaultGrid属性,让继承页来告知当前的表格控件。

修改后的代码:

QueryPeopleForm : QueryFormBase

OnQueryButtonClick()

{

 InitControls(gridMain);

 Query query = new Query();

 query.Add(“Name”, txtPeopleName.Text, QueryOperator.Like);

 query.Add(“Age”, txtPeopleAge.Text, QueryOperator.Equal);

 QueryAndBind(new PeopleManager(), query.GetSql());

}

至此,基类页的功能已经完整了,但仍然不够,如果我们以后想改变查询按钮点击的行为,比如查询结果为空时,要弹出对话框提示,这时仍然要到处修改页面代码,这不是我们所希望的,于是我们将QueryButton的OnClick操作也放在基类页了中执行,继承页只要初始化数据访问组件和设置查询条件即可。

            

QueryPeopleForm : QueryFormBase

void Initialize()

{

 // 指定页面对应的Manager

 Manager = new PeopleManager();

 // 绑定控件

 InitControls(gridMain, btnQuery);

}

void GetQueryInfo(Query query)

{

 //获得查询条件

 query.Add(“Name”, txtPeopleName.Text, QueryOperator.Like);

 query.Add(“Age”, txtPeopleAge.Text, QueryOperator.Equal);

}

QueryFormBase:

private IManager manager = null;

public IManager Manager

{

 get { return manager; }

 set { manager = value; }

}

void InitControls(GridView grid, Button queryButton)

{

 this.defaultGrid = grid;

 this.queryButton = queryButton;

 queryButton.Click += new EventHandler(QueryButton_Click);

}

void QueryButton_Click(object sender, EventArgs e)

{

 Query query = new Query();

 GetQueryInfo(Query);

 QueryAndBind(manager, query.GetSql());

}

总的代码可以从附件中下载,大家可以加入断点,看看基类,继承类页的代码执行顺序。

应该说基类的设计相对复杂,但好处是继承页的代码变得清楚了,没有多余重复的代码。

而基类页的设计其实是有技巧的,总结起来有以下几条:

1、首先以最直接的方式写出页面代码

2、提取公用方法和添加辅助类

3、提取事件处理流程到基类页中

4、在基类页中设计需要继承页重载的方法与事件

从设计上来讲,用基类页的方式来统一操作、简化页面代码是一种非常直观的方式,缺点是随着项目的演化,基类页会变得大而全,不容易被新的项目重用,这时我们就可以考虑把其中的一部分功能放到用户控件和自定义组件中来实现,以减少耦合性和提高重用性。

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有