当前位置:首页 > Windows程序 > 正文

winform中DataGridView实现分页功能

2021-03-19 Windows程序

在winform的设计中,要实现对DataGridView控件的分页功能,需要两个控件:BindingSource、BindingNavigator,根据需求可对BindingNavigator进行自由的扩展,下图的示例则是根据一般需求对分页功能的实现。红色区域是对BindingNavigator控件扩展后的效果。

 

技术分享

 

具体实现过程 :

//窗体构造方法中定义分页所需变量:

int pageSize = 0;     //每页显示行数

int nMax = 0;         //总记录数

int pageCount = 0;    //页数=总记录数/每页显示行数

int pageCurrent = 0;   //当前页号

int nCurrent = 0;      //当前记录行

DataTable dtInfo = new DataTable();  //存取查询数据结果

 

//分页功能实现

public void InitDataSet()

{

    //判断每页显示记录数是否为空,在初始话窗体时为真

    if (txtRecordNumOfPage.Text.Trim() == "")

    {

        try

        {

            //pageSize = Convert.ToInt16(ConfigurationManager.AppSettings["PageSize"]);      //设置页面行数

 

            //读取配置文件中设置的每页显示条数

            string szConfigFileName = Application.ExecutablePath + ".config";

            XmlDocument doc = new XmlDocument();

            doc.Load(szConfigFileName);

            XmlNode root = doc.SelectSingleNode("configuration");

            XmlNode node = root.SelectSingleNode("appSettings/add[@key=‘PageSize‘]");

            XmlElement el = node as XmlElement;

            pageSize = Convert.ToUInt16(el.GetAttribute("value"));

        }

        catch

        {

        }

        if (pageSize == 0)

        {

            pageSize = 20;        //如果读取配置文件失败,则默认将每页显示条数设置为20

        }

        txtRecordNumOfPage.Text = pageSize.ToString();    //界面显示的“每页记录数”赋值

    }

    else

    {

        //读取界面设置的每页显示条数

        pageSize = Convert.ToUInt16(txtRecordNumOfPage.Text.Trim());

    }

        //总记录数赋值

        nMax = dtInfo.Rows.Count;

        pageCount = (nMax / pageSize);    //采用整除计算页数

        //判断整除后是否有余数,有则对页数进行+1

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

        pageCurrent = 1;    //当前页数从1开始

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/63630.html