【小试身手】几个自定义控件的组合应用,实现简单的“增删改查”功能(有源码)

     分页控件、查询控件、显示数据的控件和表单控件,终于把这几个控件结合在一起了,和在一起之后就可以让“增删改查”变的非常的简单和容易了,当然还需要数据访问函数库的支持。

     综合演示的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文件,修改连接字符串。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏jiajia_deng

react-router 环境使用锚点的方法

2372
来自专栏前端人人

React第三方组件1(路由管理之Router的使用②多层级跳转及重定向)

本教程总共6篇,每日更新一篇,请关注我们!你可以进入历史消息查看以往文章,也敬请期待我们的新文章! 1、React第三方组件1(路由管理之Router的使用①...

3354
来自专栏全栈之路

vue项目引入markdown

git地址:https://github.com/showdownjs/showdown 其实引入markdown挺简单的:

8121
来自专栏十月梦想

VUe入门详解之条件渲染

v-if和v-show效果一样,当不满足条件时候,页面不显示响应内容,但是v-if不满足条件,不挂载在dom中,而v-show只是dispaly:none隐藏了...

862
来自专栏前端儿

让 select 的 option 标签支持事件监听(如复制操作)

想自定义option的样式,很多人会建议用 <ul> <li> 标签来辅助同步操作与值

1.2K2
来自专栏张戈的专栏

解决WordPress4.4.1不支持图片暗箱问题,Begin主题适用

前几天更新 WordPress 最新 4.41 版本之后,发现文章之前的图片暗箱弹出功能没了,而且之前设置好是缩略图尺寸也没了,直接就是最大尺寸。 看了下当前页...

3354
来自专栏进击的君君的前端之路

JS相关概念

1582
来自专栏Jerry的SAP技术分享

使用DOM Breakpoints找到修改属性的Javascript代码

使用Chrome开发者工具的DOM断点功能可以让您快速找到修改了某一个DOM元素的Javascript代码。

1969
来自专栏h5

支付宝小程序弹窗插件开发|仿微信/android/ios弹窗效果

支付宝小程序弹窗交互组件和微信小程序弹窗功能都差不多,对功能有比较多的限制,尤其想要实现丰富一些的弹窗场景就只能自己写组件实现了。

6272
来自专栏菩提树下的杨过

图片的javascript延时加载

在页面很长(超过3屏)且图片又很多时,默认情况下浏览器会加载所有图片,有可能导致第二屏的图片显示出来了,但第一屏的图片还在加载,这种情况最适合用"javascr...

2266

扫码关注云+社区

领取腾讯云代金券