Winform分页控件使用方法

摘要:
1.将dll添加到自定义页面的选项卡中2.将其拖到界面表单中3.在后台使用System添加逻辑代码;使用System.Collections。通用的使用系统。组件模型;使用系统。数据使用系统。绘画使用系统。全球化使用系统。Linq;使用系统

1.将dll添加到自定义分页上的选项卡上

Winform分页控件使用方法第1张

Winform分页控件使用方法第2张

2.拖入界面窗体

Winform分页控件使用方法第3张

 3.后台添加逻辑代码

Winform分页控件使用方法第4张Winform分页控件使用方法第5张
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using SearchScore.Entity;
using SearchScore.Services;
using WHC.Framework.Commons;
using WHC.Pager.Entity;

namespace SearchScore
{
    public partial class Form1 : Form
    {
        private readonly StudentService service = new StudentService();

        /// <summary>数据源</summary>
        private readonly List<StudentSignUploadInfo> dataSource = new List<StudentSignUploadInfo>();

        /// <summary>数据源索引</summary>
        private List<int> dataSourceIndex = new List<int>();

        public Form1()
        {
            InitializeComponent();
        }

        private void Btn_Search_Click(object sender, EventArgs e)
        {
            Task.Factory.StartNew(BindData);
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            this.winGridViewPager1.OnPageChanged += new EventHandler(winGridViewPager1_OnPageChanged);  //页面改变事件
            this.winGridViewPager1.OnStartExport += new EventHandler(winGridViewPager1_OnStartExport);  //导出事件
            this.winGridViewPager1.OnRefresh += new EventHandler(winGridViewPager1_OnRefresh);          //刷新事件
            //this.winGridViewPager1.OnEditSelected += new EventHandler(winGridViewPager1_OnEditSelected);      //选择编辑事件
            //this.winGridViewPager1.OnDeleteSelected += new EventHandler(winGridViewPager1_OnDeleteSelected);  //选择删除事件
            //this.winGridViewPager1.OnAddNew += new EventHandler(winGridViewPager1_OnAddNew);                  //添加新建事件
            //this.winGridViewPager1.AppendedMenu = this.contextMenuStrip1;                                     //新增绑定菜单事件
            //this.winGridViewPager1.dataGridView1.CellFormatting +=
            //    new DataGridViewCellFormattingEventHandler(FormatData);     //自定义格式化显示内容
            this.winGridViewPager1.ShowLineNumber = true;//显示行号
                                                         // this.winGridViewPager1.PagerInfo.PageSize = 20;//页面大小
                                                         // this.winGridViewPager1.EventRowBackColor = Color.LightCyan;//间隔颜色
        }

        /// <summary>
        /// 格式化列数据显示内容
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void FormatData(object sender, DataGridViewCellFormattingEventArgs e)
        {
            if (e.ColumnIndex == 7)
            {
                e.Value = "合格";
                e.FormattingApplied = true;
            }

            if (e.ColumnIndex == 6)
            {
                e.Value = "第一次";
            }
        }

        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void winGridViewPager1_OnRefresh(object sender, EventArgs e)
        {
            BindData();
        }

        /// <summary>
        /// 导出页面数据
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void winGridViewPager1_OnStartExport(object sender, EventArgs e)
        {
            string where = GetSearchSql();
            PagerInfo info = new PagerInfo { CurrenetPageIndex = 1, PageSize = int.MaxValue };
            this.winGridViewPager1.AllToExport = FindToDataTable(where, info);
        }

        /// <summary>
        /// 页面改变时操作返回数据
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void winGridViewPager1_OnPageChanged(object sender, EventArgs e)
        {
            BindData();
        }

        /// <summary>
        /// 自定义显示列名
        /// </summary>
        /// <returns></returns>
        public Dictionary<string, string> GetColumnNameAlias()
        {
            Dictionary<string, string> dic = new Dictionary<string, string>()
            {
                {"XM","姓名"},
                {"ZJHM", "证件号码"},
                {"Ksrq1", "考试日期"},
                {"PARAMNAME", "培训驾校"},
                {"KSCS", "考试次数"},
                {"Ksjg", "成绩"},
                {"KL_sign_upload_1", "第一次"},
                {"UploadMessage_1", "内容"},
                {"KL_sign_upload_2", "第二次"},
                {"UploadMessage_2", "内容"}
        };
            return dic;
        }

        /// <summary>
        /// 绑定显示数据
        /// </summary>
        private void BindData()
        {
            //自定义显示所需列名,不需要直接删除某个列名
            this.winGridViewPager1.DisplayColumns = "XM,zjhm,Ksrq1,PARAMNAME,KSCS,Ksjg,KL_sign_upload_1,UploadMessage_1,KL_sign_upload_2,UploadMessage_2";
            //获取自定义列名
            this.winGridViewPager1.ColumnNameAlias = GetColumnNameAlias();

            //获取条件查询
            string where = GetSearchSql();

            //列宽自动填满容器空间
            this.winGridViewPager1.dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;

            if (this.winGridViewPager1.InvokeRequired)
            {
                this.Invoke(new Action(() =>
                {
                    //只读操作
                    this.winGridViewPager1.dataGridView1.ReadOnly = true;
                    //取消多选操作
                    this.winGridViewPager1.dataGridView1.MultiSelect = false;
                    //查询数据源
                    this.winGridViewPager1.DataSource = FindToDataTable(where, winGridViewPager1.PagerInfo);
                }));
            }
            else
            {
                this.winGridViewPager1.dataGridView1.ReadOnly = true;
                this.winGridViewPager1.dataGridView1.MultiSelect = false;
                this.winGridViewPager1.DataSource = FindToDataTable(where, winGridViewPager1.PagerInfo);
            }
        }

        /// <summary>
        /// 根据查询条件构造查询语句
        /// </summary>
        /// <returns></returns>
        private string GetSearchSql()
        {
            SearchCondition condition = new SearchCondition();
            condition.AddCondition("Ksrq1", this.dateTimePicker1.Value, SqlOperator.Equal);

            string where = condition.BuildConditionSql(DatabaseType.Oracle).Replace("Where", "");
            where += " And AA.ksbh not in (select ksbh from w2_queuing)";
            return where;
        }

        /// <summary>
        /// 标准的记录查询函数
        /// </summary>
        /// <param name="where"></param>
        /// <param name="pagerInfo"></param>
        /// <returns></returns>
        private DataTable FindToDataTable(string where, PagerInfo pagerInfo)
        {
            string sql =
                "select re.id,re.ksbh,re.kl_sign_upload_1,re.kl_sign_upload_2,re.ksrq1,re.kcbh,re.kscs,re.ksjg,re.kssj1,re.jssj1,re.jgfs1, " +
                $" re.kfxx1,re.kssj2,re.jssj2,re.jgfs2,re.kfxx2,re.ksy1,vh.lsh,vh.jxdm,vh.zjhm,vh.xm,vh.yycs,sy.paramname from w2_records re left join  " +
                $" w2_vh_drs vh on re.ksbh = vh.bh left join w2_system sy on vh.jxdm = sy.paramdm";

            WHC.Pager.WinControl.PagerHelper helper = new WHC.Pager.WinControl.PagerHelper(sql, "*", "Ksrq1", pagerInfo.PageSize, pagerInfo.CurrenetPageIndex, true, where);
            string countSql = helper.GetPagingSql(WHC.Pager.WinControl.DatabaseType.Oracle, true);
            string dataSql = helper.GetPagingSql(WHC.Pager.WinControl.DatabaseType.Oracle, false);

            string value = service.SqlValueList(countSql);
            pagerInfo.RecordCount = Convert.ToInt32(value);//为了显示具体的信息,需要设置总记录数
            DataTable dt = service.SqlTable(dataSql);
            return dt;
        }
    }
}
View Code

4.连接数据库操作

Winform分页控件使用方法第6张Winform分页控件使用方法第7张
 /// <summary>
        /// 查询数据源数量大小
        /// </summary>
        /// <param name="countSql">Sql语句</param>
        /// <returns>string类型的数量大小</returns>
        public string SqlValueList(string countSql)
        {
            string result;
            try
            {
                result = LocalInterfaceFactory.GetExamInterface().SltPublic("Enterprise", countSql);
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
            return result;
        }

        /// <summary>
        /// 查询数据库数据
        /// </summary>
        /// <param name="dataSql">sql语句</param>
        /// <returns>数据源DataTable类型</returns>
        public DataTable SqlTable(string dataSql)
        {
            DataTable dt;
            try
            {
                dt = LocalInterfaceFactory.GetExamInterface().QryPublicDt("Enterprise", dataSql);
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }

            return dt;
        }
View Code

免责声明:文章转载自《Winform分页控件使用方法》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇fiddler:快速标识接口nfs共享文件搭建下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

.NET CORE与Spring Boot编写控制台程序应有的优雅姿势

本文分别说明.NET CORE与Spring Boot编写控制台程序应有的“正确”方法,以便.NET程序员、JAVA程序员可以相互学习与加深了解,注意本文只介绍用法,不会刻意强调哪种语言或哪种框架写的控制台程序要好。 本文所说的编写控制台程序应有的“正确”方法,我把正确二字加上引号,因为没有绝对的正确,因人而异,因系统设计需求而异,我这里所谓的正确方法是指...

GO开发:用go写个日志监控系统

日志收集系统架构 1.项目背景 a. 每个系统都有日志,当系统出现问题时,需要通过日志解决问题 b. 当系统机器比较少时,登陆到服务器上查看即可满足 c. 当系统机器规模巨大,登陆到机器上查看几乎不现实 2.解决方案 a. 把机器上的日志实时收集,统一的存储到中心系统 b. 然后再对这些日志建立索引,通过搜索即可以找到对应日志 c. 通过提供界面友好的we...

SqlAlchemy

SQLAlchemy是Python编程语言下的一款ORM框架,该框架建立在数据库API之上,使用关系对象映射进行数据库操作,简言之便是:将对象转换成SQL,然后使用数据API执行SQL并获取执行结果。 Dialect用于和数据API进行交流,根据配置文件的不同调用不同的数据库API,从而实现对数据库的操作,如: 1 MySQL-Python 2...

JAVA闭包

一、闭包的定义。   有很多不同的人都对闭包过进行了定义,这里收集了一些。   # 是引用了自由变量的函数。这个函数通常被定义在另一个外部函数中,并且引用了外部函数中的变量。 -- <<wikipedia>>   # 是一个可调用的对象,它记录了一些信息,这些信息来自于创建它的作用域。-- <<Java编程思想>&...

聊聊OkHttp实现WebSocket细节,包括鉴权和长连接保活及其原理!

一、序 OkHttp 应该算是 Android 中使用最广泛的网络库了,我们通常会利用它来实现 HTTP 请求,但是实际上它还可以支持 WebSocket,并且使用起来还非常的便捷。 那本文就来聊聊,利用 OkHttp 实现 WebSocket 的一些细节,包括对 WebSocket 的介绍,以及在传输前如何做到鉴权、长连接保活及其原理。 二、WebSo...

android黑科技系列——实现静态的默认安装和卸载应用

一、访问隐藏的API方式进行静态的默认安装和卸载 1.系统安装程序 android自带了一个安装程序—/system/app/PackageInstaller.apk.大多数情况下,我们手机上安装应用都是通过这个apk来安装 的。代码使用也非常简单: /*安装apk */ public static voidinstallApk(Context conte...