首页 > 其他分享 >Datagridview 分页

Datagridview 分页

时间:2023-07-17 21:56:05浏览次数:27  
标签:分页 pageSize pageCurrent int System Datagridview nCurrent using

 

 

 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace LabSys_demo
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

int pageSize = 0; //每页显示行数
int nMax = 0; //总记录数
int pageCount = 0; //页数=总记录数/每页显示行数
int pageCurrent = 0; //当前页号
int nCurrent = 0; //当前记录行

private void Form1_Load(object sender, EventArgs e)
{
InitDataSet();

}


public DataTable GetDataTable()
{
DataTable dt = new DataTable();
DataColumn c1 = new DataColumn("序号", typeof(string));
DataColumn c2 = new DataColumn("名称", typeof(string));
DataColumn c3 = new DataColumn("职位", typeof(string));
dt.Columns.Add(c1);
dt.Columns.Add(c2);
dt.Columns.Add(c3);

for (int i = 0; i < 10; i++)
{
dt.Rows.Add(i+1, "测试"+(i+1), "工人"+(i+1));
}
return dt;
}
private void InitDataSet()
{
pageSize = 2; //设置页面行数
nMax = GetDataTable().Rows.Count;
pageCount = (nMax / pageSize); //计算出总页数

if ((nMax % pageSize) > 0) pageCount++;

pageCurrent = 1; //当前页数从1开始
nCurrent = 0; //当前记录数从0开始
LoadData();
}
private void LoadData()
{
int nStartPos = 0; //当前页面开始记录行
int nEndPos = 0; //当前页面结束记录行

DataTable dtTemp = GetDataTable().Clone(); //克隆DataTable结构框架

if (pageCurrent == pageCount)
nEndPos = nMax;
else
nEndPos = pageSize * pageCurrent;

nStartPos = nCurrent;

lblPageCount.Text = pageCount.ToString();
txtCurrentPage.Text = Convert.ToString(pageCurrent);

//从元数据源复制记录行
for (int i = nStartPos; i < nEndPos; i++)
{
dtTemp.ImportRow(GetDataTable().Rows[i]);
nCurrent++;
}
dataGridView1.DataSource = dtTemp;
dataGridView1.AllowUserToAddRows = false;
}
/// <summary>
/// 下一页
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void lbl_next_Click(object sender, EventArgs e)
{
pageCurrent++;
if (pageCurrent > pageCount)
{
MessageBox.Show("已经是最后一页,请点击“上一页”查看!");
return;
}
else
{
nCurrent = pageSize * (pageCurrent - 1);
}
LoadData();
}

/// <summary>
/// 上一页
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void lbl_up_Click(object sender, EventArgs e)
{
pageCurrent--;
if (pageCurrent <= 0)
{
MessageBox.Show("已经是第一页,请点击“下一页”查看!");
return;
}
else
{
nCurrent = pageSize * (pageCurrent - 1);
}

LoadData();
}

}
}

标签:分页,pageSize,pageCurrent,int,System,Datagridview,nCurrent,using
From: https://www.cnblogs.com/wugh8726254/p/17561359.html

相关文章

  • winform中DataGridview控件
    privatevoidForm1_Load(objectsender,EventArgse){DataTabledt=newDataTable();DataColumnc1=newDataColumn("序号",typeof(string));DataColumnc2=newDataColumn("名称",typeof(string));......
  • C#DataGridView两个数据表同步滚动
    一、同步滚动SumTable为表1,CycleTable为表2两个表都添加Scroll滚动事件privatevoidSumTable_Scroll(objectsender,ScrollEventArgse)//滚动同步{CycleTable.FirstDisplayedScrollingRowIndex=SumTable.FirstDisplayedScrollingRowIndex;......
  • JAVA实现多数据源分页
    简述下思路:举例:有A,B两个数据源的数据需要查询展示,优先展示A数据源数据,我使用的数据源是clickhouse+mysql1,因为需要优先展示A数据源嘛,那就直接通过条件优先查询A数据源数据2,然后根据分页情况,判断A数据源数据量是否满足当前分页所需数据量。   有以下三种情况:先获取当前......
  • 【补充】分页器推导
    【11.0补充】分页器推导【1.0】基础版后端defab_many(request):#分页操作推导#(1)支持切片models.Book.objects.all()[1:20]---展示前20条数据#(2)分页操作#想访问的页数current_page=request.GET.get('page',1)#如果获取不到当前页......
  • 自定义分页器模版
    【前言】当我们需要使用到非Django内置的第三方模块或者功能组件代码的时候我们一般情况下会创建一个名为utils的文件夹在该文件夹内对模块的功能进行划分项目根目录/utils/自定义文件特别注意:样式基于bootstrap,需要引入bootstrap配置【一】自定义分页器封装代码c......
  • SqlServer 分页 写法
    一、SELECT*FROM   (SELECTROW_NUMBER()OVER(ORDERBYid)ASRowId,*FROMArticle wherecidin(3,4,5,6,7,8,9,10,11,12))ASrWHERE RowId BETWEEN1and12 二、select*from(   select ROW_NUMBER()OVER(ORDERBYid)asrowid,* from  ......
  • dede列表页输入数字跳转到指定分页代码
    编辑打开列表页模板,默认路径为empletsdefaultlist_article.htm,将下列代码插入之间,也可以做JS调用。<scripttype="text/javascript">//<![CDATA[functiononCheckPage(){varbeginPage=parseInt(document.beginPagefrm.beginPage.value);if(isNaN(beginPage)){alert("请输......
  • U8凭证打印,启用新控件及强制分页处理
    1.启用新控件需要在选项中设置:2.然后在总账--凭证打印 套打设置如下:然后在打印预览设置时选择强制分面即可 ......
  • 同时处理列表分页加载功能和Reload功能经验
    功能背景:1. 首先我们这个列表它带有搜索功能2.左边是列表,右边为详情。3.页面上方有添加新项功能,会放到第一个。4.这是一个零件列表,同一个页面可以有无数个这种零件列表  第一,列表带有搜索功能,当搜索的发生改变时要将请求页数重置为1。这里我们应该如何做呢?当请......
  • 表格分页多选默认回显实现
    element的表格可以使用row-key和reserve-selection来实现多选翻页回显,但是在使用过程中却出现了,翻页之后,翻页保存的数据丢失问题。复现前准备首先是使用el-table和el-pagination搭建好基本的页面,包括获取表格数据事件,翻页事件以及表格的selection-change、row-key、re......