近期在写一系列的winfrom,按项目需求是需要用dgv显示数据,但问题的难点在于,需要实现分页,而分页按钮绑定的是订单主表的数据,dgv绑定的却是子表的数据,主要是围绕DateTable,根据点击按钮的增减值来获取对应值,

比如我点击下一页当前页为第一页,初值为0,txtClient.Text = dtView.Rows[pagesize]["C_Name"].ToString();//此时下标则增加1

执行则为txtClient.Text = dtView.Rows[1]["C_Name"].ToString();

相比复杂的分页还需要加减乘除的我是每次都用的蒙查查的,以下代码可以直接套用,逻辑都是没有问题的,只需要修改相对应得字段名就可以直接使用了,写的不好还请多多包涵,谢谢!

先上图.........

//定义常量

private int Inum = 1;    //行号,规定其索引初始值为1
        int pagesize = 0;        //当前页数
        int pageCount = 0;       //总页数

绑定dgv初始数据以及一系列控件的数据绑定

private void bindingData()//窗体加载时调用
        {
            string Sqlstr = "select * from D_DD1 a,Company b where CC='+' and b.Company_ID=a.Company_ID";
            DataTable dtView = SqlDBHelp.GetTable(Sqlstr);//SqlDBHelp数据库操作类
            pageCount = dtView.Rows.Count;    //获取数据表中记录的个数
            if (Inum > pageCount)
            {
                Inum--;
                return;
            }
            else
            {
                if (pageCount != 0)
                {
                    this.txtPage.Text = Inum.ToString() + "/" + pageCount.ToString();   //txtPage为显示当前页数/总页数
                    txtClient.Text = dtView.Rows[pagesize]["C_Name"].ToString();
                    txtCompanyName.Text = dtView.Rows[pagesize]["Company_Name"].ToString();
                    txtPhone.Text = dtView.Rows[pagesize]["C_Phone"].ToString();
                    txtCode.Text = dtView.Rows[pagesize]["Postal_Code"].ToString();
                    txtAddress.Text = dtView.Rows[pagesize]["Address"].ToString();
                    //时间转换  yyyy-MM-dd
                    string time = dtView.Rows[pagesize]["D_DATE"].ToString();
                    //time = dt.ToLongDateString().ToString();
                    lblTime.Text = time;
                    lblC_ID.Text = dtView.Rows[pagesize]["C_ID"].ToString();
                    string O_ID = dtView.Rows[pagesize]["O_ID"].ToString();
                    lblO_ID.Text = O_ID;
                    if (O_ID != null && O_ID != "")
                    {
                        string Sqlstr1 = string.Format("select * from D_DD2 where O_Id='{0}'", O_ID);//绑定子表的数据到dgv
                        DataTable dtView1 = SqlDBHelp.GetTable(Sqlstr1);
                        dgvList.DataSource = dtView1;
                    }
                }
                else
                {
                    return;
                }
            }
        }

//首页按钮的单击事件

private void btnFirst_Click(object sender, EventArgs e)
        {
            Inum = 1;
            pagesize = 0;
            bindingData();
        }

//末页

private void btnLast_Click(object sender, EventArgs e)
        {
            Inum = pageCount;
            pagesize = pageCount - 1;
            bindingData();
        }

//下一页

private void btnNext_Click(object sender, EventArgs e)
        {
            Inum++;
            if (pagesize <= pageCount)              //如果没有超出记录行数
            {
                pagesize++;
                if (pagesize >= pageCount)
                {
                    pagesize--;
                    bindingData();
                }
                else
                {
                    bindingData();
                }
            }
            else if (pagesize > pageCount)
            {
                pagesize--;
                Inum--;
                return;
            }
            else
            {
                return;
            }
        }

//上一页

private void btnPre_Click(object sender, EventArgs e)
        {
            Inum--;
            if (Inum <= 0)
            {
                Inum++;
                return;
            }
            else
            {
                if (pagesize <= 0)
                {
                    pagesize++;
                    bindingData();
                }
                else
                {
                    if (pagesize <= pageCount)
                    {
                        pagesize--;
                        bindingData();
                    }
                    else if (pagesize > pageCount)
                    {
                        pagesize--;
                        if (pagesize == pageCount)
                        {
                            pagesize--;
                            bindingData();
                        }
                        else
                        {
                            bindingData();
                        }
                    }
                    else
                    {
                        return;
                    }
                }
            }
        }

C#之 DateGridView分页超简单相关推荐

  1. 零起点学算法03——超简单模仿算术题

    零起点学算法03--超简单模仿算术题 Description 计算机计算能力很强哦.  让计算机帮你算其实也很容易,不过要学好计算机语言哦.  下面请看一个例子:要求计算机计算1+2的值并输出.  这 ...

  2. 迷你世界电锯机器人_迷你世界:三分钟制作超简单飞翔石像机器人报道!

    更多游戏资讯,请点击上方蓝字查询! 哈喽,大家好,还记得我之前分享的超简单的石像机器人吗?不记得了吗?我再帮助大家回忆回忆,之前研游酱分享的石像机器人总共是分两篇文章,一个是不会动的入下图,一个是会动 ...

  3. 面试Python开发的这道题超简单,我却搞砸了!

    题图 | Shutterstock / studiostoks 这道算法题明明超简单-- 上午10点,在T公司的会议室里,小R正在参加一场他准备了好几天的技术面试. 整体来说,他在这场面试中的表现还不 ...

  4. ASP.NET中一种超简单的Ajax解决方案

    为什么是Ajax2? 因为之前有一个blqw.Ajax,并且已经在项目中投入使用了,但是没有这个方便,这个是后来才弄的,为了纪念第一版的blqw.Ajax,所以这个就2了... 话说看了评论才发现,原 ...

  5. python http服务器_超简单的Python HTTP服务

    超如果你急需一个简单的Web Server,但你又不想去下载并安装那些复杂的HTTP服务程序,比如:Apache,ISS等.那么, Python 可能帮助你.使用Python可以完成一个简单的内建 H ...

  6. 用python实现视频换脸_超简单使用Python换脸实例

    换脸! 这段时间,deepfakes搞得火热,比方说把<射雕英雄传>里的朱茵换成了杨幂,看下面的图!毫无违和感! 其实早在之前,基于AI换脸的技术就得到了应用,比方说<速度与激情7& ...

  7. 【超简单】MySQL存储引擎的选择与配置

    [超简单]MySQL存储引擎的选择与配置 存储引擎简介 MySQL中的数据用各种不同的技术存储在文件(或内存)中.每一种技术都使用不同的存储机构,索引技巧,锁定水平并且最终提供广泛的不同的功能和能力. ...

  8. 批处理 操作mysql_超简单使用批处理(batch)操作数据库

    超简单使用批处理(batch)操作数据库 批处理(batch)是什么 批处理的执行就好比快递员的工作: 未使用批处理的时候,快递员一次从分发点将一件快递发给客户: 使用批处理,则是快递员将所有要派送的 ...

  9. python与excel表格-超简单:用Python让Excel飞起来

    超简单:用Python让Excel飞起来 作者:王秀文;郭明鑫;王宇韬 编著 出版日期:2020年07月 文件大小:20.30M 支持设备: ¥45.00在线试读 适用客户端: 言商书局 iPad/i ...

  10. win10下使用certutil工具对文件的SHA1、MD5和SHA256哈希结果做验证(超简单,附图)

    初步介绍 众所周知,当我们从网上下载软件时,发行商为了保证用户在下载过程中自己的软件没有被更改,都会通过一些哈希函数来确保他们软件的完整性.比如:在网上有一些攻击者会在其中植入像插件,广告或病毒等等恶 ...

最新文章

  1. 用Python分析淘宝2000款避孕套,得出这些有趣的结论
  2. Get Cache Info in Linux on ARMv8 64-bit Platform
  3. 查看xxx.a库架构的命令
  4. 艾蔻扫地机器人怎么充电_扫地机器人锂电池的正确使用方法
  5. java工厂模式学习
  6. for循环次数太多的时间优化_for循环关于对象长度优化思考
  7. mysql grant show_【汇总】mysql常用操作【grant,show】
  8. C#中方法参数的传递方式: 值类型(默认),ref类型,out类型和params类型
  9. JavaEE学习--javascript中的正则表达式
  10. 小甲鱼python【easyGUI】学习笔记
  11. python中数据结构的基本定义
  12. Es的mapping映射
  13. pgm概率图模型_概率图形模型(PGM)算法| 机器学习
  14. 2015年最新互联网概念股一览表
  15. 【ACWing】658. 一元二次方程公式
  16. php系统5000块钱的短信,两天被刷完了,短信接口被恶意盗刷怎么办?(短信接口被盗刷系列4)
  17. ubuntu18.04安装搜狗拼音
  18. pyqt win32发送QQ消息
  19. WebRTC基础实践 - 5.通过RTCPeerConnection传输流媒体视频
  20. 第2节 Kali Linux系统初体验及简单操作

热门文章

  1. 抖音超级恶心的滑稽HTML源码
  2. 网站被攻击如何正确防护
  3. 用Latex写学术论文:作者(Author)摘要(Abstract)
  4. HackTheBox::Blunder
  5. word:回车替换成空格
  6. 聚宽量化投资策略研究
  7. 手机恢复出厂设置命令_OpenWRT 恢复出厂设置命令
  8. 移位运算符的介绍与使用
  9. flex:1代表什么
  10. 什么是CSS hack及写法