winform控件 datagridview分页功能 界面实现需要有上一页下一页等操作控件 dataGridView1 控件的数据绑定方式 如何实现分页中的数据修改然后进行保存 请列出详细例子 特别保存部分
生活随笔
收集整理的這篇文章主要介紹了
winform控件 datagridview分页功能 界面实现需要有上一页下一页等操作控件 dataGridView1 控件的数据绑定方式 如何实现分页中的数据修改然后进行保存 请列出详细例子 特别保存部分
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
以下提供一個示例來說明如何在 WinForms 中實現分頁功能,并在分頁中實現數據修改并保存的操作。
首先,我們需要一個包含數據源的 DataGridView 控件,并添加上一頁、下一頁等操作控件來實現分頁功能。
接下來,我們需要實現數據的加載、分頁、修改和保存功能。
這里我將提供一個簡單的例子:
using System;
using System.Data;
using System.Windows.Forms; namespace DataGridViewPagination
{
public partial class Form1 : Form
{
private DataTable originalDataTable; // 原始數據表
private DataTable currentPageDataTable; // 當前頁數據表
private int pageSize = 10; // 每頁顯示的數據條數
private int currentPageIndex = 1; // 當前頁索引 public Form1()
{
InitializeComponent();
} private void Form1_Load(object sender, EventArgs e)
{
// 模擬加載數據
LoadData(); // 顯示第一頁數據
ShowData();
} private void LoadData()
{
// 模擬加載數據源
originalDataTable = new DataTable();
originalDataTable.Columns.Add("ID", typeof(int));
originalDataTable.Columns.Add("Name", typeof(string)); // 添加一些示例數據
for (int i = 1; i <= 100; i++)
{
originalDataTable.Rows.Add(i, "Name " + i);
}
} private void ShowData()
{
// 計算起始索引和結束索引
int startIndex = (currentPageIndex - 1) * pageSize;
int endIndex = Math.Min(startIndex + pageSize - 1, originalDataTable.Rows.Count - 1); // 創建一個新的數據表,用于存儲當前頁的數據
currentPageDataTable = originalDataTable.Clone(); // 填充新的數據表
for (int i = startIndex; i <= endIndex; i++)
{
currentPageDataTable.ImportRow(originalDataTable.Rows[i]);
} // 將新的數據表綁定到 DataGridView 控件
dataGridView1.DataSource = currentPageDataTable; // 更新分頁信息
labelPageInfo.Text = $"Page {currentPageIndex}/{GetTotalPages()}, Records {startIndex + 1}-{endIndex + 1} of {originalDataTable.Rows.Count}";
} private int GetTotalPages()
{
// 計算總頁數
return (int)Math.Ceiling((double)originalDataTable.Rows.Count / pageSize);
} private void btnPrevious_Click(object sender, EventArgs e)
{
// 顯示上一頁數據
if (currentPageIndex > 1)
{
currentPageIndex--;
ShowData();
}
} private void btnNext_Click(object sender, EventArgs e)
{
// 顯示下一頁數據
if (currentPageIndex < GetTotalPages())
{
currentPageIndex++;
ShowData();
}
} private void btnSave_Click(object sender, EventArgs e)
{
// 保存修改
SaveChanges();
} private void SaveChanges()
{
// 確保DataGridView綁定了數據源
if (dataGridView1.DataSource == null || !(dataGridView1.DataSource is DataTable))
{
return;
} // 獲取當前頁的數據表
DataTable pageDataTable = (DataTable)dataGridView1.DataSource; // 將修改后的數據保存到原始數據表中
foreach (DataRow row in pageDataTable.Rows)
{
DataRow originalRow = originalDataTable.Rows.Find(row["ID"]); // 假設有一個唯一標識為ID的列
if (originalRow != null)
{
originalRow.ItemArray = row.ItemArray;
}
} // 提示保存成功或執行其他保存操作
MessageBox.Show("Changes saved successfully."); // 重新加載數據,刷新當前頁的DataGridView
ShowData();
}
}
}
在這個例子中,我們創建了一個包含 ID 和 Name 列的 DataTable 作為數據源,然后在 Form_Load 事件中加載數據,并在 ShowData 方法中實現了分頁功能。上一頁和下一頁按鈕分別觸發了 btnPrevious_Click 和 btnNext_Click 事件來切換頁碼并顯示相應的數據。保存按鈕則觸發了 btnSave_Click 事件來保存修改后的數據。
在 SaveChanges 方法中,我們遍歷了當前頁的數據表,將修改后的數據保存到原始數據表中,并重新加載數據來刷新當前頁的 DataGridView。
這個例子是一個簡單的實現,實際應用中你可能需要根據具體需求進行調整和擴展。
總結
以上是生活随笔為你收集整理的winform控件 datagridview分页功能 界面实现需要有上一页下一页等操作控件 dataGridView1 控件的数据绑定方式 如何实现分页中的数据修改然后进行保存 请列出详细例子 特别保存部分的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: TensorFlow 1.9开始支持树莓
- 下一篇: E470 外放没声音问题解决