DataGridView分页
### DataGridView 分页与全选功能实现 在C#开发中,`DataGridView` 是一个非常强大的控件,用于在 Windows 应用程序中显示表格数据。本文将详细介绍如何为 `DataGridView` 控件添加分页功能以及全选/取消全选功能。 #### 一、分页功能的实现 ##### 1. 准备工作 为了实现分页,首先需要准备一个包含数据的 `DataTable`。这里使用了一个简单的 SQL 查询来填充这个表。 ```csharp string strConn = "DataSource=.;InitialCatalog=PapeIndex;IntegratedSecurity=True"; SqlConnection conn = new SqlConnection(strConn); conn.Open(); string strSql = "select * from Goods"; SqlDataAdapter sda = new SqlDataAdapter(strSql, conn); sda.Fill(ds, "ds"); conn.Close(); DataTable dtInfo = ds.Tables[0]; ``` 接下来初始化数据集,设置每页显示的行数、总记录数等变量,并加载初始页面的数据。 ```csharp public void InitDataSet() { pageSize = 5; // 设置页面行数 nMax = dtInfo.Rows.Count; pageCount = (nMax / pageSize); // 计算出总页数 if ((nMax % pageSize) > 0) pageCount++; pageCurrent = 1; // 当前页数从1开始 nCurrent = 0; // 当前记录数从0开始 LoadData(); } ``` ##### 2. 加载数据 `LoadData` 方法负责根据当前页数加载数据到一个新的 `DataTable`,然后将其设置为 `BindingSource` 的数据源。 ```csharp public void LoadData() { int nStartPos = 0; // 当前页面开始记录行 int nEndPos = 0; // 当前页面结束记录行 DataTable dtTemp = dtInfo.Clone(); // 克隆 DataTable 结构框架 if (pageCurrent == pageCount) nEndPos = nMax; else nEndPos = pageSize * pageCurrent; nStartPos = nCurrent; // 从元数据源复制记录行 for (int i = nStartPos; i < nEndPos; i++) { dtTemp.ImportRow(dtInfo.Rows[i]); nCurrent++; } bdsInfo.DataSource = dtTemp; bdnInfo.BindingSource = bdsInfo; dgvInfo.DataSource = bdsInfo; } ``` #### 二、全选/取消全选功能的实现 在 `DataGridView` 中实现全选/取消全选功能可以通过添加一个复选框列来完成。需要手动添加一个名为“选择”的复选框列到 `DataGridView`: ```csharp private void Form1_Load(object sender, EventArgs e) { // 添加复选框列 DataGridViewCheckBoxColumn db = new DataGridViewCheckBoxColumn(); db.Name = "选择"; dataGridView1.Columns.Add(db); // 初始化其他数据 string strConn = "DataSource=.;InitialCatalog=PapeIndex;IntegratedSecurity=True"; // ... } private void bdnInfo_ItemClicked(object sender, ToolStripItemClickedEventArgs e) { if (e.ClickedItem.Text == "全选") { foreach (DataGridViewRow row in dataGridView1.Rows) { row.Cells["选择"].Value = true; } } else if (e.ClickedItem.Text == "取消全选") { foreach (DataGridViewRow row in dataGridView1.Rows) { row.Cells["选择"].Value = false; } } } ``` 这里使用了 `ToolStrip` 控件来提供“全选”和“取消全选”的功能按钮,并通过遍历每一行并设置复选框的状态来实现全选或取消全选。 #### 三、小结 通过上述步骤,我们可以轻松地为 `DataGridView` 控件添加分页和全选/取消全选的功能。这不仅提高了用户体验,还让应用程序更加专业。在实际项目中,可以根据具体需求调整这些功能的具体实现方式。 ##
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 【java毕业设计】大学生社团管理系统源码(ssm+mysql+说明文档).zip
- 【java毕业设计】大学生勤工助学管理系统源码(ssm+mysql+说明文档+LW).zip
- 最新更新!!!数字化转型“同群效应”(2000-2023年)
- lv_0_20241117192631.mp4
- 【java毕业设计】大学生就业帮助系统源码(ssm+mysql+说明文档+LW).zip
- 最新更新!!!42万+世界各国新冠疫情数据
- 【java毕业设计】宠物商店管理系统源码(ssm+mysql+说明文档+LW).zip
- 12无耻无畏的味道二位
- 最新整理!!!3600+银行财务数据大全(到2022年)
- 【java毕业设计】充电桩综合管理源码(ssm+mysql+说明文档+LW).zip