ASP.NET中基类页的设计和使用
在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.GetDataTa
相关文档:
在Web编程过程中,存在着很多安全隐患。比如在以前的ASP版本中,Cookie为访问者和编程者都提供了方便,并没有提供加密的功能。打开IE浏览器,选择“工具”菜单里的“Internet选项”,然后在弹出的对话框里单击“设置”按钮,选择“查看文件”按钮,在弹出的窗口中,就会显示硬盘里 ......
GridView无代码分页排序
GridView选中,编辑,取消,删除
GridView正反双向排序
GridView和下拉菜单DropDownList结合
GridView和CheckBox结合
鼠标移到GridView某一行时改变该行的背景色方法一
鼠标移到GridView某一行时改变该行的背景色方法二
GridView实现删除时弹出确认 ......
几乎 Menu 控件外观的各个方面都可以使用 Menu 控件的属性或级联样式表 (CSS) 来管理。通过了解哪些属性控制呈现的哪些方面,可以定制菜单的外观。本主题介绍由 Menu 控件公开的样式类型,并建议一些使用 Menu 控件设置样式的最佳做法。
可以直接在标记中设置各种样式的属性或使用样式表 ......