C# 如何用 dateGridView 实现分页?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# 如何用 dateGridView 实现分页?相关的知识,希望对你有一定的参考价值。
我现在 dateGridView是这么填充的:
public partial class STORAGE_LIST_COUNT : FormBase
DataTable dt = new DataTable();
string sql = string.Format("select GOODS_CODE,GOODS_NAME,GOODS_TUHAO,SUM(STORAGE_LIST_QUANTITY) FROM V_ST_STORAGE_LIST group by GOODS_CODE,GOODS_NAME,GOODS_TUHAO");
public STORAGE_LIST_COUNT()
InitializeComponent();
private void STORAGE_LIST_COUNT_Load(object sender, EventArgs e)
this.DataBind();
private void DataBind()
dt = this._i_base.GetList(sql);
DataTable ndt = new DataTable();
DataColumn dc = new DataColumn();// 自增序号
dc.ColumnName = "序号 ";
dc.AutoIncrement = true;
dc.AutoIncrementSeed = 1;
dc.AutoIncrementStep = 1;
ndt.Columns.Add(dc);
ndt.Merge(dt);
this.dataGridView1.DataSource = ndt;
请我如何把这个 ndt(datetable) 分页后赋给dateGridView,控件并提供前一页,后一页,首页。末页的功能
谢谢。
dateGridView 中 没有PageIndexChanging事件。
/// <summary>
/// 绑定数据
/// </summary>
/// <param name="pageIndex">显示页面</param>
private void DataBind(int pageIndex)
if(pageIndex<0)
pageIndex = 1;
dt = this._i_base.GetList(sql);
DataTable ndt = new DataTable();
DataColumn dc = new DataColumn();// 自增序号
dc.ColumnName = "序号";
dc.AutoIncrement = true;
dc.AutoIncrementSeed = 1;
dc.AutoIncrementStep = 1;
ndt.Columns.Add(dc);
ndt.Merge(dt);
int rowsEveryPage = 10;//每页显示数据条数
int begin = (pageIndex-1) * 10 + 1;//开始数据行索引
int end = (pageIndex - 1) * 10 + rowsEveryPage ;//结束数据行索引
DataRow[] drs = ndt.Select("序号>" + begin + " and 序号< " + end);
DataTable bindTable = ndt.Clone();
for (int i = 0; i < drs.Length; i++)
DataRow dr = bindTable.NewRow();
dr.ItemArray = drs[i].ItemArray;
bindTable.Rows.Add(dr);
this.dataGridView1.DataSource = bindTable;
参考技术A 在GridView1的PageIndexChanging事件中写一下代码。自带的。
SqlConnection conn = new SqlConnection(“连接数据库”);
SqlDataAdapter ad = new SqlDataAdapter("select GOODS_CODE,GOODS_NAME,GOODS_TUHAO,SUM(STORAGE_LIST_QUANTITY) FROM V_ST_STORAGE_LIST group by GOODS_CODE,GOODS_NAME,GOODS_TUHAO", conn);
DataSet set = new DataSet();
ad.Fill(set);
GridView1.DataSource = set.Tables[0];
GridView1.PageIndex=e.NewPageIndex;
GridView1.DataBind(); 参考技术B 不用代码,直接在控件的选项中设置。 参考技术C 什么东西
如何用C#设计上位机(小白篇)
界面及功能设计
设备指令编写
通信模块设计
一. 界面功能设计:
以下是visual studio开发窗体的界面,界面设计中有几个常用的工具分别为:
buttun(按钮)
textBox(文本框)
checkBox(勾选开关)
comboBox(复选框)
label(标签)
Timer(时钟)
常用用法介绍如下:
buttun:一般只需编辑Text属性(如下图为“连接”),命名后直接双击按钮,跳到程序编辑界面,编辑该按钮想要实现的功能。例如:下图为“连接”按钮的程序代码,实现连接和断开的功能。
textBox:一般有两种用途:
(1)作为用户输入的参数,可双击该文本框,跳到程序编辑界面,编辑该文本框的文本变化时所要实现的功能。例如:下图为“标签”文本框的程序代码,当“标签”文本框的文本被改变时,将该文本框的文本发送给示波器。
(2)作为输出显示的参数,程序控制该文本框的内容,显示给用户看。例如下图“测量数据”文本框,每隔1S读取示波器的测量值,显示出来。
checkBox:一般用于开关。例如下图,开关某个通道,其属性为checkBox.checked,开为true,关为false。双击该开关,编辑开关状态变化时,实现发送开关指令给示波器。
comboBox:一般用于多个档位选择工具,在属性中需要编辑“集合”,如下图,测量类型的选择。双击该复选框,编辑选择项变化时,实现发送测量类型指令给示波器。
5. Label:一般用于显示一些提示文本,所以不需要做编程。
6.Timer:时钟工具可以实现每隔一段时间自动执行某些操作,需要设计Interval属性(时间间隔),以及Enable属性(打开)。例如:实现每秒读取示波器测量值并显示的功能。
二. 设备指令编写
这个部分主要参考仪器的指令集进行编写各种控制命令,相对来说比较简单。如下图为示波器的通道打开和关闭指令:
三. 通信模块设计
本例中选择VISA软件协议中的USB接口通信,VISA是NI公司推出的仪器通信软件协议,本例中引用了VISA的库,在发送和接收命令过程中将变得十分简单,如下图分别为发送和接收指令:(NI也牛批!)
最后,介绍一点相对来说比较高级的应用——快捷键。当窗体处于最小化时,如果需要使用快捷键,需要引用Windows的热键注册功能,具体实现如下代码:
以上是关于C# 如何用 dateGridView 实现分页?的主要内容,如果未能解决你的问题,请参考以下文章