【小试身手】几个自定义控件的组合应用,实现简单的“增删改查”功能(有源码)
分页控件、查询控件、显示数据的控件和表单控件,终于把这几个控件结合在一起了,和在一起之后就可以让“增删改查”变的非常的简单和容易了,当然还需要数据访问函数库的支持。
综合演示的IDE是 vs2008,.net Framework2.0,C#, B/S 。目标(适用范围)是网站的后台管理、OA、CRM、CMS等信息管理方面的项目。
演示网址:http://jyk.mainsdn.com/ 感谢 CleverKing (www.mainsdn.com)提供空间和域名。
自定义控件的源码下载地址:http://www.cnblogs.com/jyk/archive/2008/07/29/1255891.html
综合演示的程序(源码)的下载地址:http://www.cnblogs.com/jyk/archive/2008/07/29/1255891.html
先发个截图:
表单页面,实现增加、修改数据。
表面上看好像没什么特别的,但是有两点需要注意一下。
1、像文本框、下拉列表框这样的控件,并不是在IDE里面拖拽出来的,而是表单控件、查询控件根据配置信息自动“绘制”出来的。
2、如果您留意一下网址的话,您会发现“新闻管理”和“员工管理”的列表页面的网址都是http://jyk.mainsdn.com/_CommonPage/DataList1.aspx?fid=21 只是后面的 fid值不一样,一个是21,一个是23。
同样两个表单页面的网址也是一样的,都是http://jyk.mainsdn.com/_CommonPage/DataDetail.aspx?k=1&fid=21&id=-2 同样也只是 fid 不一样,一个是21,一个是23。
这两个页面不是只能承担两个功能点,其他的功能点也都可以使用这两个页面,只要功能不是太复杂的就可以。一般的项目,80%的列表页面都可以使用DataList.aspx页面来实现,而30%-80%的表单也都可以使用DataDetail.aspx页面实现。
可能您会想,这么多的功能点都是用同一个页面实现,页面里的代码是不是会很多很复杂,其实页面里的代码很简单,其原因就是采用了一系列的自定义控件来实现的。
下面是基类、网页的结构图:
VS2008提供了一个计算代码度量值的功能,用一下看看吧,总共的代码数才128行,挺简洁的吧。
页面里的代码
贴一段BasePageList 的代码,其他的就先不贴了,感兴趣的话可以下载源代码。
public class BasePageList : BasePage
{
定义公用的控件,以便于统一控制#region 定义公用的控件,以便于统一控制
/**//// <summary>
/// 分页用的控件
/// </summary>
public QuickPager myPager;
/**//// <summary>
/// 显示数据用的控件
/// </summary>
public MyGrid myGrid;
/**//// <summary>
/// 查询控件
/// </summary>
public MyFind myFind;
/**//// <summary>
/// 查询按钮
/// </summary>
public Button Btn_Search;
#endregion
/**//// <summary>
/// OnInit事件
/// </summary>
/// <param name="e"></param>
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
设置分页控件的属性#region 设置分页控件的属性
myPager.DAL = base.dal;
myPager.ControlGrid = myGrid;
myPager.FunctionID = this.FunctionID;
myPager.SetPagerInfo();
#endregion
设置显示数据控件的属性#region 设置显示数据控件的属性
myGrid.DAL = base.dal;
myGrid.FunctionID = this.FunctionID;
#endregion
设置查询控件的属性#region 设置查询控件的属性
myFind.DAL = base.dal;
myFind.FunctionID = this.FunctionID;
myFind.SetTDColumns = 3;
#endregion
添加按钮的事件#region 添加按钮的事件
this.Btn_Search.Click += new EventHandler(Btn_Search_Click);
#endregion
}
查询事件#region 查询事件
void Btn_Search_Click(object sender, EventArgs e)
{
myPager.TableQuery = this.myFind.GetSearchWhere();
myPager.BindFirstPage();
}
#endregion
}
综合演示的“安装”说明,需要下载演示用的数据库,在http://www.cnblogs.com/jyk/archive/2008/07/29/1255891.html 这里有下载,附加到SQL Server 2000(5)里面,然后下载综合演示的程序,然后打开web.congfig文件,修改连接字符串。
- 最大公约数和最小公倍数及其应用(Go语言解法)
- JAVA private私有类的 默认构造函数 的生成过程
- 一次数据变更的审核过程(r8笔记第95天)
- JavaScript 学习一
- 与Ajax同样重要的jQuery(2)
- 寻找第K元素的八大算法、源码及拓展
- 索引优先队列-IndexedPrirotyQueue的原理及实现(源码)
- Java 集合系列02之 Collection架构
- 开发者需要掌握的JS事件
- Java 集合系列03之 ArrayList详细介绍(源码解析)和使用示例
- Kosaraju算法、Tarjan算法分析及证明--强连通分量的线性算法
- 关于curl网站运维与开发的那些事
- 并查集Union-find及其在最小生成树中的应用
- go 语言的库文件放在哪里?如何通过nginx代理后还能正确获取远程地址
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法