winform分页控件 附源码下载

Winform分页控件攻略

什么是Winform分页控件

Winform分页控件是一种用来在Windows桌面应用程序中实现数据分页显示的控件,它可以实现数据的分页查询、快速定位和显示,是非常实用的控件之一。

如何使用Winform分页控件

1. 控件的引入

您可以下载自己喜欢的Winform分页控件控件,或自行编写相应的控件。后文以“PagerControl”作为控件名示例。

您可以在项目中使用NuGet引入PagerControl. 或者从Github下载源码自行编译使用。

2. 控件的基本配置

在使用PagerControl之前,您需要进行以下配置:

PagerControl.Pager pager = new PagerControl.Pager();

pager.OnPageChanged += Pager_OnPageChanged; //定义翻页事件

pager.PageIndex = 1; //当前页码

pager.PageSize = 10; //每页显示的行数

pager.RecordCount = 100; //数据总记录数

以上内容设定了Pager的翻页事件、当前页码、每页显示的行数和数据总记录数等基本参数。

3. 数据的绑定

数据绑定需要您自行实现。例如,您可以使用Ado.NET或Entity Framework获取数据并将其填充到DataGridView等控件中,再将控件绑定到PagerControl上,实现分页显示功能。

void BindData()
{
    DataTable dt = GetData(); //获取数据表

    pager.RecordCount = dt.Rows.Count; //数据总记录数

    int start = (pager.PageIndex - 1) * pager.PageSize; //起始位置

    int end = start + pager.PageSize; //结束位置

    if (end > pager.RecordCount) //如果结束位置大于总记录数,将结束位置设置为总记录数
    {
        end = pager.RecordCount;
    }

    DataTable pageData = dt.Clone(); //创建当前页数据表的结构

    for (int i = start; i < end; i++) //按照起始位置和结束位置遍历数据表
    {
        pageData.ImportRow(dt.Rows[i]); //将符合条件的数据行添加到当前页数据表中
    }

    dataGridView1.DataSource = pageData; //将当前页数据表绑定到DataGridView中
}

以上代码使用自定义的GetData()方法获取数据表,再根据当前页码和每页显示的行数对数据表进行分页,最终将符合条件的数据绑定到DataGridView中。

4. 控件的显示

pager.Dock = DockStyle.Bottom; //将PagerControl放置在窗口底部

this.Controls.Add(pager); //将PagerControl添加到窗口中

dataGridView1.Dock = DockStyle.Fill; //将DataGridView填充窗口

this.Controls.Add(dataGridView1); //将DataGridView添加到窗口中

将PagerControl和DataGridView添加到窗口中,PagerControl放在窗口底部,DataGridView填充整个窗体。

示例说明

以下是两个使用PagerControl显示数据的示例说明。

示例一:使用Ado.NET显示学生列表

  1. 创建一个Windows应用程序,将PagerControl控件和DataGridView控件添加到窗口中。

  2. 使用SqlDataAdapter和DataSet对象从数据库中获取学生数据表,将其填充到DataGridView中。

  3. 在PagerControl的OnPageChanged事件中重新绑定数据,实现数据的分页显示。

详细代码如下:

private void Form1_Load(object sender, EventArgs e)
{
    string connectionString = ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString; //读取连接字符串

    SqlConnection connection = new SqlConnection(connectionString);

    connection.Open(); //连接数据库

    string sql = "SELECT * FROM Students";

    SqlDataAdapter adapter = new SqlDataAdapter(sql, connection);

    DataTable dt = new DataTable();

    adapter.Fill(dt); //填充数据

    connection.Close(); //关闭连接

    dataGridView1.DataSource = dt; //将数据绑定到DataGridView中
}

private void Form1_Shown(object sender, EventArgs e)
{
    pager.OnPageChanged += Pager_OnPageChanged; //定义翻页事件
}

private void Pager_OnPageChanged(object sender, EventArgs e)
{
    BindData(); //重新绑定数据
}

void BindData()
{
    DataTable dt = dataGridView1.DataSource as DataTable; //获取原始数据表

    pager.RecordCount = dt.Rows.Count; //数据总记录数

    int start = (pager.PageIndex - 1) * pager.PageSize; //起始位置

    int end = start + pager.PageSize; //结束位置

    if (end > pager.RecordCount) //如果结束位置大于总记录数,将结束位置设置为总记录数
    {
        end = pager.RecordCount;
    }

    DataTable pageData = dt.Clone(); //创建当前页数据表的结构

    for (int i = start; i < end; i++) //按照起始位置和结束位置遍历数据表
    {
        pageData.ImportRow(dt.Rows[i]); //将符合条件的数据行添加到当前页数据表中
    }

    dataGridView1.DataSource = pageData; //将当前页数据表绑定到DataGridView中
}

示例二:使用Entity Framework显示商品列表

  1. 使用Entity Framework从数据库中获取商品数据,并将其填充到DataGridView中。

  2. 在PagerControl的OnPageChanged事件中重新绑定数据,实现数据的分页显示。

详细代码如下:

private void Form1_Load(object sender, EventArgs e)
{
    ProductContext context = new ProductContext(); //创建数据上下文

    dataGridView1.DataSource = context.Products.ToList(); //将数据绑定到DataGridView中
}

private void Form1_Shown(object sender, EventArgs e)
{
    pager.OnPageChanged += Pager_OnPageChanged; //定义翻页事件
}

private void Pager_OnPageChanged(object sender, EventArgs e)
{
    BindData(); //重新绑定数据
}

void BindData()
{
    ProductContext context = new ProductContext(); //创建数据上下文

    pager.RecordCount = context.Products.Count(); //数据总记录数

    int start = (pager.PageIndex - 1) * pager.PageSize; //起始位置

    var query = context.Products.OrderBy(p => p.Id).Skip(start).Take(pager.PageSize); //按照条件查询数据

    dataGridView1.DataSource = query.ToList(); //将当前页数据绑定到DataGridView中
}

以上代码演示了使用Entity Framework获取商品数据并进行数据绑定和分页显示的过程。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:winform分页控件 附源码下载 - Python技术站

(0)
上一篇 2023年6月27日
下一篇 2023年6月27日

相关文章

  • 小米手机如何给桌面的应用程序加密?

    针对“小米手机如何给桌面的应用程序加密”这个问题,我为您提供以下攻略: 1. 手动加密桌面应用程序 步骤如下: 长按桌面上需要加密的应用程序图标,选择“移动”,将应用移动到主屏幕下方的“更多应用”文件夹中。 进入“设置”应用,在“设置”中点击“应用锁”,并开启应用锁功能。 进入“应用锁”功能界面,在应用列表中选择您需要加密的应用,然后点击加锁按钮,即可完成加…

    other 2023年6月25日
    00
  • 飞卢小说如何查看版本号?飞卢小说查看版本号方法

    飞卢小说如何查看版本号攻略 飞卢小说是一款非常受欢迎的小说阅读应用程序。如果你想要查看飞卢小说的版本号,可以按照以下步骤进行操作: 打开飞卢小说应用程序:在你的手机或平板电脑上找到飞卢小说应用程序的图标,并点击打开。 进入设置页面:在飞卢小说的主界面上,通常会有一个设置图标,一般是一个齿轮或者一个三个点的图标。点击这个图标,进入设置页面。 查找版本信息:在设…

    other 2023年8月3日
    00
  • Java语言读取配置文件config.properties的方法讲解

    Java是一种常用的编程语言,经常需要读取配置文件,比如常见的.properties文件。本次将详细讲解Java语言读取配置文件config.properties的方法。 一、配置文件的格式 .config.properties文件的格式为(key=value),其中key值为变量名,value值为变量值,二者以等号“=”连接,多个变量之间用回车换行符“\n…

    other 2023年6月25日
    00
  • 详解webpack4之splitchunksPlugin代码包分拆

    下面是“详解webpack4之splitchunksPlugin代码包分拆”的完整攻略: 1. splitchunksPlugin是什么 SplitchunksPlugin是webpack4中的一个插件,用于将代码块分离成不同的文件,以实现优化性能和减小代码体积的目的。 2. 配置示例 让我们在webpack.config.js文件中创建一个新的optimi…

    other 2023年6月27日
    00
  • 详解ASP.NET七大身份验证方式以及解决方案

    详解ASP.NET七大身份验证方式以及解决方案 身份验证的概念 身份验证是指在网络环境下确认用户身份和权限的技术。在Web应用程序中,身份验证是保护数据和其他私密或机密资源的第一道防线。ASP.NET提供了丰富的身份验证方式和解决方案,帮助开发人员轻易地实现各种需求。 Forms身份验证 Forms身份验证是ASP.NET提供的最基本的身份验证方式。它的工作…

    other 2023年6月26日
    00
  • 游戏开发者配置 游戏开发者最低配置及要求

    游戏开发者配置及最低要求是确保游戏顺利运行的关键因素之一,以下是游戏开发者必须了解的完整攻略: 游戏开发者配置 游戏开发者需要具备能够支持游戏开发的硬件配置,以下是一些必备配置: 操作系统:Windows 10、MacOS、任何最新版本的Linux发行版 处理器(CPU):Intel Core i5以上,或者AMD Ryzen 5以上 显卡(GPU):NVI…

    other 2023年6月26日
    00
  • mpvue将vue项目转换为小程序

    mpvue是一个基于Vue.js进行开发的小程序框架,可以将已有的Vue.js项目快速转换为小程序项目。下面是mpvue将Vue.js项目转换为小程序的简要攻略: 1. 安装和初始化mpvue 在终端中执行以下命令安装mpvue: npm install -g vue-cli vue init mpvue/mpvue-quickstart my-projec…

    other 2023年6月27日
    00
  • Python面向对象封装继承和多态示例讲解

    Python面向对象封装继承和多态示例讲解 在Python中,面向对象编程是一种广泛采用的编程范式。Python的面向对象编程支持封装、继承和多态等特性。在本文中,我们将详细讲解Python面向对象编程中的封装、继承和多态,并提供示例说明。 封装 在Python中,封装指的是将数据和方法放在一个类中,使得数据不会直接被访问和修改,只能通过类中的方法进行操作。…

    other 2023年6月25日
    00
合作推广
合作推广
分享本页
返回顶部