C# 手动添加列时,如何在datagridview中进行分页?

C# 手动添加列时,如何在datagridview中进行分页?,c#,winforms,datagridview,C#,Winforms,Datagridview,我想在datagridview中进行分页,有很多方法,但它们都是用于直接绑定数据库中的数据。当我们手动添加列时,有人能告诉我们如何进行分页吗要添加分页,您需要知道来自数据的行总数,然后将这些行拆分为页面,并填充datagridview的数据源,然后您可以处理列的显示方式 有关分页的更完整示例,请参阅Sk Saini的代码项目文章,我在这篇文章中给出了很多答案 以BindlingList为例,记住这是一个不完整的解决方案 private int pageSize = 10; private int

我想在datagridview中进行分页,有很多方法,但它们都是用于直接绑定数据库中的数据。当我们手动添加列时,有人能告诉我们如何进行分页吗要添加分页,您需要知道来自数据的行总数,然后将这些行拆分为页面,并填充datagridview的数据源,然后您可以处理列的显示方式

有关分页的更完整示例,请参阅Sk Saini的代码项目文章,我在这篇文章中给出了很多答案

以BindlingList为例,记住这是一个不完整的解决方案

private int pageSize = 10;
private int currentPage = 0;
private int totalPages;
private BindlingList<object> bindinglist;

public void InitialiseDataSource(){

    // populate bindinglist..
    bindinglist = new Bindlist<object>(){etc..}

    CalculateTotalPages();

    SetDataSource(1);
}

private void CalculateTotalPages(){

    int rowCount = bindingList.Count;

    this.totalPages = rowCount / this.pageSize;

    if (rowCount % this.pageSize > 0){
       this.totalPage += 1;
    }
}

private int GetNumOfItemsToShow(int page){
    return this.pageSize * this.page;
}

private int GetNumOfItemsToSkip(){
    return this.pageSize * this.currentPage;
}
然后,要在页面之间移动页面,请为NextPage、PreviousPage等添加方法

private void NextPage(){

  var page = currentPage + 1;

  if (page <= totalPages){
      SetDataSource(page);   
  } else {
      //do something else
  }
}
private void NextPage(){
变量页=当前页+1;

如果(page要添加分页,您需要知道来自数据的行总数,然后将这些行拆分为页面,并填充datagridview的数据源,那么您可以处理列的显示方式

有关分页的更完整示例,请参阅Sk Saini的代码项目文章,我在这篇文章中给出了很多答案

以BindlingList为例,记住这是一个不完整的解决方案

private int pageSize = 10;
private int currentPage = 0;
private int totalPages;
private BindlingList<object> bindinglist;

public void InitialiseDataSource(){

    // populate bindinglist..
    bindinglist = new Bindlist<object>(){etc..}

    CalculateTotalPages();

    SetDataSource(1);
}

private void CalculateTotalPages(){

    int rowCount = bindingList.Count;

    this.totalPages = rowCount / this.pageSize;

    if (rowCount % this.pageSize > 0){
       this.totalPage += 1;
    }
}

private int GetNumOfItemsToShow(int page){
    return this.pageSize * this.page;
}

private int GetNumOfItemsToSkip(){
    return this.pageSize * this.currentPage;
}
然后,要在页面之间移动页面,请为NextPage、PreviousPage等添加方法

private void NextPage(){

  var page = currentPage + 1;

  if (page <= totalPages){
      SetDataSource(page);   
  } else {
      //do something else
  }
}
private void NextPage(){
变量页=当前页+1;

如果(第页),你是说你想打印页码?还是说屏幕页,只要调整DGV的大小就会改变?你是说你想打印页码?还是说屏幕页,只要调整DGV的大小就会改变??