C#之 DateGridView分页超简单
近期在写一系列的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分页超简单相关推荐
- 零起点学算法03——超简单模仿算术题
零起点学算法03--超简单模仿算术题 Description 计算机计算能力很强哦. 让计算机帮你算其实也很容易,不过要学好计算机语言哦. 下面请看一个例子:要求计算机计算1+2的值并输出. 这 ...
- 迷你世界电锯机器人_迷你世界:三分钟制作超简单飞翔石像机器人报道!
更多游戏资讯,请点击上方蓝字查询! 哈喽,大家好,还记得我之前分享的超简单的石像机器人吗?不记得了吗?我再帮助大家回忆回忆,之前研游酱分享的石像机器人总共是分两篇文章,一个是不会动的入下图,一个是会动 ...
- 面试Python开发的这道题超简单,我却搞砸了!
题图 | Shutterstock / studiostoks 这道算法题明明超简单-- 上午10点,在T公司的会议室里,小R正在参加一场他准备了好几天的技术面试. 整体来说,他在这场面试中的表现还不 ...
- ASP.NET中一种超简单的Ajax解决方案
为什么是Ajax2? 因为之前有一个blqw.Ajax,并且已经在项目中投入使用了,但是没有这个方便,这个是后来才弄的,为了纪念第一版的blqw.Ajax,所以这个就2了... 话说看了评论才发现,原 ...
- python http服务器_超简单的Python HTTP服务
超如果你急需一个简单的Web Server,但你又不想去下载并安装那些复杂的HTTP服务程序,比如:Apache,ISS等.那么, Python 可能帮助你.使用Python可以完成一个简单的内建 H ...
- 用python实现视频换脸_超简单使用Python换脸实例
换脸! 这段时间,deepfakes搞得火热,比方说把<射雕英雄传>里的朱茵换成了杨幂,看下面的图!毫无违和感! 其实早在之前,基于AI换脸的技术就得到了应用,比方说<速度与激情7& ...
- 【超简单】MySQL存储引擎的选择与配置
[超简单]MySQL存储引擎的选择与配置 存储引擎简介 MySQL中的数据用各种不同的技术存储在文件(或内存)中.每一种技术都使用不同的存储机构,索引技巧,锁定水平并且最终提供广泛的不同的功能和能力. ...
- 批处理 操作mysql_超简单使用批处理(batch)操作数据库
超简单使用批处理(batch)操作数据库 批处理(batch)是什么 批处理的执行就好比快递员的工作: 未使用批处理的时候,快递员一次从分发点将一件快递发给客户: 使用批处理,则是快递员将所有要派送的 ...
- python与excel表格-超简单:用Python让Excel飞起来
超简单:用Python让Excel飞起来 作者:王秀文;郭明鑫;王宇韬 编著 出版日期:2020年07月 文件大小:20.30M 支持设备: ¥45.00在线试读 适用客户端: 言商书局 iPad/i ...
- win10下使用certutil工具对文件的SHA1、MD5和SHA256哈希结果做验证(超简单,附图)
初步介绍 众所周知,当我们从网上下载软件时,发行商为了保证用户在下载过程中自己的软件没有被更改,都会通过一些哈希函数来确保他们软件的完整性.比如:在网上有一些攻击者会在其中植入像插件,广告或病毒等等恶 ...
最新文章
- 用Python分析淘宝2000款避孕套,得出这些有趣的结论
- Get Cache Info in Linux on ARMv8 64-bit Platform
- 查看xxx.a库架构的命令
- 艾蔻扫地机器人怎么充电_扫地机器人锂电池的正确使用方法
- java工厂模式学习
- for循环次数太多的时间优化_for循环关于对象长度优化思考
- mysql grant show_【汇总】mysql常用操作【grant,show】
- C#中方法参数的传递方式: 值类型(默认),ref类型,out类型和params类型
- JavaEE学习--javascript中的正则表达式
- 小甲鱼python【easyGUI】学习笔记
- python中数据结构的基本定义
- Es的mapping映射
- pgm概率图模型_概率图形模型(PGM)算法| 机器学习
- 2015年最新互联网概念股一览表
- 【ACWing】658. 一元二次方程公式
- php系统5000块钱的短信,两天被刷完了,短信接口被恶意盗刷怎么办?(短信接口被盗刷系列4)
- ubuntu18.04安装搜狗拼音
- pyqt win32发送QQ消息
- WebRTC基础实践 - 5.通过RTCPeerConnection传输流媒体视频
- 第2节 Kali Linux系统初体验及简单操作