Winform分页控件重大更新,并落到实处普通版、DotNetBar、DevExpress三大版本整合革新(附种种例子源码)

By admin in 投资 on 2019年2月22日

自家的男朋友暖宝宝先生单身的时候被圈中好友公认为是“暖男”,时常对女性朋友表示不逾越界限的爱抚,和作者在协同后,他变成自个儿1位的暖婴孩。暖宝宝这几个名为是因为春季自家简单手脚冰冷,他便抱着自己说:“未来,笔者就是你的暖宝宝。”于是暖宝宝先生便得了那样3个娘娘腔的名称。

在Winform开发中,一向离不开分页处理,好的分页控件封装,能为开支节省不可胜举时日和麻烦工作,对分页控件平昔的改革和周全,也是自己的趣味之一。本次重大达成对分页控件的圆满重构,优化职能及界面的拍卖,并统一达成普通版、基于DotNetbar界面控件版本、DevExpress界面控件版本三大本子的表露,那多少个界面版本,除了界面表现效果不同外,全体的职能浮现及运用代码完全一致,保障用户的学识投资及给客户可以的拔取操作。这次重大扩展的效果有:可经过界面设置列表展现的列,可复制选定的行音信,可安装突显的行号、可设置突显间隔行的水彩等功能。下边分别对多少个例子的截图举办一体化介绍,然后在事无巨细介绍

从一起首相处,笔者俩便是外乡,于今仍旧那样。小编在湖南,他在多瑙河,小编俩分布在大中国的最南部和最北边,时差近三个小时。平均三个多月能够相会贰次。一初叶自我是持悲观论调的:多个人都干活平稳,想调整都不便于,今后有着不可预测性,作者并没有信心。可经过相处,作者逐渐坚定,并在那么些历程中逐步明白恋爱的精华和宗旨。当然有一个很重点的前提,暖婴孩先生值得本人去爱。

1)普通版(即不引用任何第②方界面控件)效果图

相互信任

图片 1 

那时控制在一块儿的时候,暖宝宝先生问作者能依旧不能承受异地。当时本人沉浸在对爱情的期盼中,想也没想就说还行。但在渐渐的相处中,小编才真的领会那个接受是要有很有力的信任作基础。

上图中,深翠绿的菜单是分页控件内置的菜单项,其他程序附加是扩展菜单连串,其中复制选定行音讯、设置表格突显列、打印列表是对表格基本的操作成效。上面七个本子的控件右键菜单均显示同样。 

此前看过3个帖子,探究如果恋爱中,对方没有马上回你短信如故电话,你是怎么感想。看到大部分女孩子回复:男朋友不回短信或不接电话,自身第3反响就是男朋友在和其余女生鬼混。而那般的回复往往可以吸收众八个赞。可以观望,恋爱中,女人的思可疑往往相比较重。很多时候,男子也会同样。尤其是在异地恋中,看不到对方,不只怕精晓对方的行迹,就特别简单有估计的思想。

2) 基于DotNetbar界面控件版本

四个人的看重账户是透过无多次互相坦诚和联系建立起来的。就像是您报名信用卡相同,银行凭借你的工作情况显然你的偿仍是可以力,并基于还款能力分明你的信用额度。在选取信用卡的历程中,你每回到还款日期都可以准时还款,那么您的信用积分便会追加,银行也会给你伸张一定的信用额度。

图片 2 

大家的情丝账户也是这么,一起始的额度依靠的是多人对相互的感情,在三个人相处的进度中,不欺骗对方、不隐瞒对方,有事情马上联系才能逐步升级本身的信用额度。假如始终地开发信任账户,而不去进步,那么有只怕会透支多个人的心情。越发是异地恋的神经越发脆弱,2遍解说不明了的行迹、三个含糊不清的答复都有只怕回落账户余额,所以首要标准就是创造几个人之间的亲信账户。

3) 基于DevExpress界面控件版本

沟通互换

图片 3 

前方也说了,信任账户是明镜高悬和维系建立起来的,那么今后自小编要说说交流。

运用分页控件的根底代码,在有着以上版本中,代码均一致,只是一对非同平时的操作,须要选拔到不相同的控件,有所差异而已。初阶化分页控件代码如下所示。

  • 先是个关系是交换交流相互在世界观、人生观、价值观、婚姻观、金钱观等地点的想法

        private void FrmCustomer_Load(object sender, EventArgs e)
        {
            this.winGridViewPager1.ProgressBar = this.toolStripProgressBar1.ProgressBar;
            this.winGridViewPager1.OnPageChanged += new EventHandler(winGridViewPager1_OnPageChanged);
            this.winGridViewPager1.OnStartExport += new EventHandler(winGridViewPager1_OnStartExport);
            this.winGridViewPager1.OnEditSelected += new EventHandler(winGridViewPager1_OnEditSelected);
            this.winGridViewPager1.OnDeleteSelected += new EventHandler(winGridViewPager1_OnDeleteSelected);
            this.winGridViewPager1.OnRefresh += new EventHandler(winGridViewPager1_OnRefresh);
            this.winGridViewPager1.OnAddNew += new EventHandler(winGridViewPager1_OnAddNew);
            this.winGridViewPager1.AppendedMenu = this.contextMenuStrip1;//追加额外菜单连串
            this.winGridViewPager1.ShowLineNumber = true;//突显行号
            this.winGridViewPager1.PagerInfo.PageSize = 30;//页面大小
            this.winGridViewPager1.伊夫ntRowBackColor = Color.LightCyan;//间隔颜色

局地朋友会以为那很搞笑,很空虚,没有实际意义。
其实不然,对两岸基础观念进行联系并达到和平消除才能使三个人更好地相处。很多相恋难点居然家庭难点都以因为这一个地点出现龃龉和不一致。

            BindData();
       }

诸如金钱观。我有2个有情人买东西的时候总喜欢买品牌、追前卫,尤其是对数码产品有着狂热的言情,认准苹果的手机产品,只要IPhone新型号发表,他自然会去进货。而作者认为买东西无所谓贵贱与否,有名与否,适合自身才第1,而手机只是2个工具,假诺能够满意急需,那就没有换的需要。如若自个儿和那一个心上人相处,那么在费用方面就会出现争辨。

 以上是对分页控件的连带事件开展拍卖,如果落成了连带的轩然大波,那么相应的食谱(如新增、编辑、删除等)就会在右键菜单中冒出,否则不见面世,相应的轩然大波就是现实性对应操作的处理菜单操作。别的,分页控件的部分性质,如是还是不是出示行号、页面展现记录大小、间隔颜色等天性也能够在那边安装。

很庆幸,小编和暖婴儿先生在那上头一贯相当小的分化。大家俩买东西都属于按需购置,偶尔会有一点小喜悦也是足以知晓的,在对金钱的管理方面都以在满意生活须要的前提下,先投资储蓄后消费。

这几个发轫化设置达成后,一般查询界面都会有七个规则的咬合,然后经过整合条件查询数据库记录并突显,突显的时候,分页控件可以安装对应字段的华语显示名称,显示的字段列,展现顺序等。展现字段的一一就是列表的来得顺序,这么些特点也是新本子增加的功力之一。        

再譬如说婚姻观。作者前边在爱人圈发了一条状态:最好的婚姻是这么的:五个人不仅仅是有情人,依旧亲朋好友,是情人、是亲密,个性相似,兴趣相通,为联合的对象同步使劲。让自个儿想得到的是,竟然有一部分人代表,那不现实。再看那有的恋人,大多数对婚姻的认识都以多少人在联名吃饭。

       private void winGridViewPager1_OnPageChanged(object sender, EventArgs e)
        {
            BindData();
        }

自己曾和暖宝宝先生畅谈今后的婚姻生活,暖婴孩先生代表,婚姻生活将见面临不少压力,大概会跟长辈现身顶牛,或许会跟子女发生争执,可是不管什么样,婚姻中的四人才是着力,不管面对什么样难题,夫妻多少人首先要一心一德,才能一起面对。那种论调和自个儿的想法不谋而合。

        /// <summary>
        /// 依照查询条件构造查询语句
        /// </summary>
        /// <returns></returns>
        private string GetSearchSql()
        {
            SearchCondition condition = new SearchCondition();
            condition.AddCondition(“Number”, this.txtNumber.Text, SqlOperator.Like)
                .AddCondition(“Name”, this.txtName.Text, SqlOperator.Like)
                .AddCondition(“Type”, this.cmbType.Text, SqlOperator.Like)
                .AddCondition(“Area”, this.cmbArea.Text, SqlOperator.Like)
                .AddCondition(“Address”, this.txtAddress.Text, SqlOperator.Like)
                .AddCondition(“Company”, this.txtCompany.Text, SqlOperator.Like)
                .AddCondition(“Note”, this.txtNote.Text, SqlOperator.Like)
                .AddCondition(“Telephone1”, this.txtTelephone.Text, SqlOperator.Like, true, “Telephone”)
                .AddCondition(“Telephone2”, this.txtTelephone.Text, SqlOperator.Like, true, “Telephone”)
                .AddCondition(“Telephone3”, this.txtTelephone.Text, SqlOperator.Like, true, “Telephone”)
                .AddCondition(“Telephone4”, this.txtTelephone.Text, SqlOperator.Like, true, “Telephone”)
                .AddCondition(“Telephone5”, this.txtTelephone.Text, SqlOperator.Like, true, “Telephone”);

只怕有个别朋友会以为自己说的那不是废话吗,不过看看你周围的家人朋友,难道没有面对婆媳抵触,男方自身躲得远远的例证吗,难道没有婚姻中某一方有了孩子就忽略另一方的例子吗?

            if (chkUseDate.Checked)
            {
                condition.AddCondition(“CreateDate”, dateTimePicker1.Value.ToString(“yyyy-MM-dd”), SqlOperator.MoreThanOrEqual, true)
                    .AddCondition(“CreateDate”, dateTimePicker2.Value.AddDays(1).ToString(“yyyy-MM-dd”), SqlOperator.LessThanOrEqual, true);

  • 其次个挂钩是每一天互换

            }
            string where = condition.BuildConditionSql().Replace(“Where”, “”);
            return where;
        }

理所当然那一个也要和对方落成一致,有的人唯恐节奏相比慢大概尤其独立可能其余什么来头,觉得每一日联系太频仍,那就要求交换好。作者在和先行者异地的时候,对方就提议或者联系不会那么频仍,两二十二日三次啊,后来分手也是后话了。和暖婴孩以往一初始指出每一日联系的时候,他坚定地说:“那自然了,那是必须的。”

        private void BindData()
        {
            #region 添加别名解析
            //DisplayColumns与浮现的字段名可能实体性质一致,大小写不灵活,顺序代表显示顺序,用逗号大概|分开
            this.winGridViewPager1.DisplayColumns = “Number,NAME,type,Area,Company,Address,Telephone1,Telephone2,Telephone3,Telephone4,Telephone5,CreateDate,Note,LastUpdated”;
            this.winGridViewPager1.AddColumnAlias(“ID”, “编号”);
            this.winGridViewPager1.AddColumnAlias(“Number”, “客户编号”);
            this.winGridViewPager1.AddColumnAlias(“Name”, “客户名称”);
            this.winGridViewPager1.AddColumnAlias(“Type”, “客户类型”);
            this.winGridViewPager1.AddColumnAlias(“Area”, “客户地区”);
            this.winGridViewPager1.AddColumnAlias(“Company”, “客户单位”);
            this.winGridViewPager1.AddColumnAlias(“Address”, “客户地址”);
            this.winGridViewPager1.AddColumnAlias(“Telephone1”, “电话1”);
            this.winGridViewPager1.AddColumnAlias(“Telephone2”, “电话2”);
            this.winGridViewPager1.AddColumnAlias(“Telephone3”, “电话3”);
            this.winGridViewPager1.AddColumnAlias(“Telephone4”, “电话4”);
            this.winGridViewPager1.AddColumnAlias(“Telephone5”, “电话5”);
            this.winGridViewPager1.AddColumnAlias(“CreateDate”, “开户日期”);
            this.winGridViewPager1.AddColumnAlias(“Shop_ID”, “分店ID”);
            this.winGridViewPager1.AddColumnAlias(“Note”, “备注”);
            this.winGridViewPager1.AddColumnAlias(“LastUpdated”, “更新日期”);

至今大家每一日都会在固化时间打电话,发微信恐怕视频聊天,说一说天天的行事和生存,有时候即使简单开着视频,他忙他的,作者忙本身的。即使某天尤其忙,不只怕按期联系,也会发微信告诉对方。

            #endregion

  • 其四个是争吵时的联络

            string where = GetSearchSql();
            this.winGridViewPager1.DataSource = BLLFactory<Customer>.Instance.Find(where, this.winGridViewPager1.PagerInfo);
        }

几人在一道吵架的时候可以偶尔撒个泼打个滚,哭一哭闹一闹,最后一个温暖如春的拥抱、二个深深的亲吻都足以消除。可异地恋不能够用亲吻和拥抱化解争吵,互换就显得愈发关键。

        private void btnSearch_Click(object sender, EventArgs e)
        {
            BindData();
        }

暖宝宝先生时常跟笔者强调要联系,尤其是吵架的时候必须接对方电话,无法冷战,不可以隔夜,心里的想法自然要说出去,无法闷着,可以有小性情,但不只怕胡搅蛮缠,及时互换化解冲突。就好像大坝蓄水一样,适当开闸放水,假若每便水量增加都不管,等到量变积累为质变,大坝就会坍塌。

不少人原先看过自家介绍分页控件的用法的时候,总会认为上面的数量绑定情势接近简单,实际操作只怕绑定数据连接有标题,因为不知晓Find函数里面必要贯彻那些操作,因为那些是基于本人框架的应用逻辑。其实Find方法就是依据分页属性计算获取相应记录,然后把总记录数赋值给分页控件的习性。

要学会把心理的宣泄变成心理的维系。人在口角的时候很简单心绪用事,女孩子更是如此,经常被心情控制了大脑。可是那样平昔的发火、争辩、自说自话是历来化解不了问题,如若五个人精美互换,沟通互动想法,理性地看待难点,很多争辩都可以解决。有时候经过交换,才发现两者争吵是出于古板差距可能仅仅是简单的误会造成,互换后才可以越来越明白对方。暖宝宝先生有时候和本人开玩笑说:“小编感觉我们每趟吵完架之后心思更深了。”那就是因为通过联系大家扩大了对互相的摸底,那样的争吵才有意义。

下边大家来介绍1个不必要依靠作者的Winform框架类,只是引用微软EnterpriseLibary数据库操作类即可成功的操作,因为最新的分页控件集成了三个依照Oracle、SqlServer、Access、Mysql数据库的分页逻辑,只需求利用PagerHelper这些类,传入相关的参数即可。

学会独立

分页控件绑定数据如下代码所示。

众多女人都有爱情至上的想法,恋爱之后,生活中近乎只剩余爱情了,只要一有空闲时间就想和对方联系,希望把自个儿的保有空闲时间都给对方,也愿意在祥和索要的时候对方都能陪同。不过在外市恋中,双方的劳作、生活节奏都差别等,特别是自我和暖宝宝先生那样还有少数小时差,笔者上床的时候他或者还在加班,他睡觉的时候自身或然已经起床上班了,所以您不可以确保在你需求的时候对方可以有空来陪您。

        private void BindData()
        {
            #region 添加别名解析
            //DisplayColumns与浮现的字段名或然实体性质一致,大小写不敏感,顺序代表展现顺序,用逗号只怕|分开
            this.winGridViewPager1.DisplayColumns = “Number,NAME,type,Area,Company,Address,Telephone1,Telephone2,Telephone3,Telephone4,Telephone5,CreateDate,Note,LastUpdated”;
            this.winGridViewPager1.AddColumnAlias(“ID”, “编号”);
            this.winGridViewPager1.AddColumnAlias(“Number”, “客户编号”);
            this.winGridViewPager1.AddColumnAlias(“Name”, “客户名称”);
            this.winGridViewPager1.AddColumnAlias(“Type”, “客户类型”);
            this.winGridViewPager1.AddColumnAlias(“Area”, “客户地区”);
            this.winGridViewPager1.AddColumnAlias(“Company”, “客户单位”);
            this.winGridViewPager1.AddColumnAlias(“Address”, “客户地址”);
            this.winGridViewPager1.AddColumnAlias(“Telephone1”, “电话1”);
            this.winGridViewPager1.AddColumnAlias(“Telephone2”, “电话2”);
            this.winGridViewPager1.AddColumnAlias(“Telephone3”, “电话3”);
            this.winGridViewPager1.AddColumnAlias(“Telephone4”, “电话4”);
            this.winGridViewPager1.AddColumnAlias(“Telephone5”, “电话5”);
            this.winGridViewPager1.AddColumnAlias(“CreateDate”, “开户日期”);
            this.winGridViewPager1.AddColumnAlias(“Shop_ID”, “分店ID”);
            this.winGridViewPager1.AddColumnAlias(“Note”, “备注”);
            this.winGridViewPager1.AddColumnAlias(“LastUpdated”, “更新日期”);

其余,生活也不应有只有爱情,要学会经营自个儿的活着,管理自个儿的光阴。工作之余还有朋友、还有兴趣爱好。小编的行事相比轻松,而暖婴孩的办事亟待经常加班加点,甚至没有礼拜天。在她一筹莫展陪伴笔者的时刻里,笔者阅读、码字、护肤、运动、旅行,和调谐的高兴谈恋爱,这种痛感不亚于真正的婚恋。

            #endregion

让本人的生存充实,学会和孤寂和平化解,不仅可以让祥和在面对异地恋的时候越发从容,也让对方进一步自在,而且扩展的生存也给两岸增加了累累话题和谈资。真是一举三得,何乐不为呢?

            string where = GetSearchSql();
            this.winGridViewPager1.DataSource = FindToDataTable(where, this.winGridViewPager1.PagerInfo);
       } 

手拉手目的

FindToDataTable函数的连带兑现代码如下所示:

异乡恋毕竟不是长久之计,大家是因为相爱所以愿意忍受这份相思之苦,大家忍受相思之苦是为着有一天可以修成正果,可以圆满甘休异地生活。所以两者要对前途有联合的宏图:哪一方捐躯本人来终结异地?陈设多长期为止异地生活?为了为止异地生活应该什么努力?如果长期内无法缓解那几个难题,那么该怎么保险异地生活?那几个题材都应该达到共识。

        /// <summary>
        /// 标准的记录查询函数
        /// </summary>
        /// <param name=”where”></param>
        /// <param name=”pagerInfo”></param>
        /// <returns></returns>
        private DataTable FindToDataTable(string where, PagerInfo pagerInfo)
        {
            WHC.Pager.WinControl.PagerHelper helper = new WHC.Pager.WinControl.PagerHelper(“All_Customer”, “*”, “LastUpdated”, pagerInfo.PageSize, pagerInfo.CurrenetPageIndex, true, where);
            string countSql = helper.GetPagingSql(WHC.Pager.WinControl.DatabaseType.Access, true);
            string dataSql = helper.GetPagingSql(WHC.Pager.WinControl.DatabaseType.Access, false);

暖宝宝先生比自个儿更清楚这几个道理,在婚恋之处就规划着我们的团圆饭之梦,并不时给本人信心,给本人3个最晚时限让自家安慰。大家仔细推究对前途的向往,每三遍的对前景蓝图的描述都让小编尤其充满信心,一份健康的异地恋就是在想到对方的时候就愈加坚决自个儿为前途拼命创优的狠心。

            string value = SqlValueList(countSql);
            pagerInfo.RecordCount = Convert.ToInt32(value);//为了显得具体的音讯,需要安装总记录数
            DataTable dt = SqlTable(dataSql);
            return dt;
        }

始于一段异地恋本不是三个睿智的选项,不过在爱对一个值得爱的人的时候,距离已经不是题材了。相爱容易相处难,异地恋更是如此,希望保有真心相爱的异地恋朋友都可以用诚心去经营那段心理,最终有情人终成眷属。

        /// <summary>    
        /// 执行SQL查询语句,再次回到查询结果的有所记录的首先个字段,用逗号分隔。    
        /// </summary>    
        /// <param name=”sql”>SQL语句</param>    
        /// <returns>    
        /// 再次回到查询结果的保有记录的率先个字段,用逗号分隔。    
        /// </returns>    
        public string SqlValueList(string sql)
        {
            StringBuilder result = new StringBuilder();
            Database db = DatabaseFactory.CreateDatabase();
            DbCommand command = db.GetSqlStringCommand(sql);

            using (IDataReader dr = db.ExecuteReader(command))
            {
                while (dr.Read())
                {
                    result.AppendFormat(“{0},”, dr[0].ToString());
                }
            }
            string strResult = result.ToString().Trim(‘,’);
            return strResult;
        }

        /// <summary>    
        /// 执行SQL查询语句,重返全数记录的DataTable集合。    
        /// </summary>    
        /// <param name=”sql”>SQL查询语句</param>    
        /// <returns></returns>    
        public DataTable SqlTable(string sql)
        {
            Database db = DatabaseFactory.CreateDatabase();
            DbCommand command = db.GetSqlStringCommand(sql);
            return db.ExecuteDataSet(command).Tables[0];
         }

 利用控件内置的分页支持类

 

WHC.Pager.WinControl.PagerHelper,你就足以不用理会各个差距数据库的分页完结逻辑,只须要根据以上的调用形式调用即可,此类传入的第1个参数,既可以是表名,也得以是一段查询语句,至极便宜种种繁复条件的询问分页

 

新式分页控件的相干界面截图如下所示。

1)设置表格列的可知性 

图片 4 
 2)表格数据打印预览

 图片 5

3)行数据主导新闻提示 

图片 6 

 4)复制选定行后在文件中查阅

 图片 7

为了使得大家对自个儿的Winform分页控件在差异意况下的尖锐领悟和采取,作者专门编写了两种情景下的施用正规例子,供大家下载学习琢磨,例子包罗利用基于泛型格局的Winform开发框架结构的分页控件使用例子,基于传统精炼多少绑定的分页控件使用例子,
基于DotNetBar界面控件及简便多少绑定的分页控件使用例子,基于DevExpress界面控件及简单多少绑定的分页控件使用例子,如下图所示。

图片 8 

各个例子的源码的下载地址如下:http://www.iqidi.com/download/TestWinPager_Demo.rar 

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图
Copyright @ 2010-2019 mobile.365-838.com 版权所有