C# GridView 分组 如何实现?

C端开发,不是asp.net

正巧我坐过类似的一个测试,可以帮助你下

首先你要了解bindingSource  和 bindingNavigator 控件。

这里我说的是不利用第三方的分页控件。

配置如下

m_cardDataSet.Tables[0]在文中表示为初次查询出来的所有结果信息

给你提供我写的两个函数


 int pageSize = 50;//每页显示的行数

        int nMax = 0;//总记录数

        int pageCount = 0;//页数

        int pageCurrent = 0;//当前页号

        int nCurrent = 0;//当前行号

//初始化分页信息-根据传递的table表信息

public void InitDataTable(DataTable p_dataTable)

        {

            nMax = p_dataTable.Rows.Count;

            pageCount = (nMax / pageSize);

            if (nMax % pageSize > 0)

            {

                pageCount++;

            }

            pageCurrent = 1;

            nCurrent = 0;

            LoadData(p_dataTable);

        }

//加载分页信息到页面中

        public void LoadData(DataTable p_dataTable)

        {

            int nStartPos = 0;

            int nEndPos = 0;

            DataTable deTemp = new DataTable();

            deTemp = p_dataTable.Clone();


            if (pageCurrent == pageCount)

            {

                nEndPos = nMax;

            }

            else

            {

                nEndPos = pageSize * pageCurrent;

            }

            nStartPos = nCurrent;


            pageCountNumber.Text = "共" + pageCount.ToString() + "页";

            currentPage.Text = "第" + Convert.ToString(pageCurrent) + "页";


            if (p_dataTable.Rows.Count > 0)

            {


                for (int i = nStartPos; i < nEndPos; i++)

                {

                    deTemp.ImportRow(p_dataTable.Rows[i]);

                    nCurrent++;

                }

            }

            bdsInfo.DataSource = deTemp;

            bdnInfo.BindingSource = bdsInfo;

            carDataDgv.DataSource = bdsInfo;

        }



//bindingNavigator 绑定的函数

private void bdnInfo_ItemClicked(object sender, ToolStripItemClickedEventArgs e)

        {

            if (e.ClickedItem.Text == "上一页")

            {

                pageCurrent--;

                if (pageCurrent <= 0)

                {

                    MessageBox.Show("已经是第一页,请点击下一页!");

                    return;

                }

                else

                {

                    nCurrent = pageSize * (pageCurrent - 1);

                }

                LoadData(m_cardDataSet.Tables[0]);

            }


            if (e.ClickedItem.Text == "下一页")

            {

                pageCurrent++;

                if (pageCurrent > pageCount)

                {

                    MessageBox.Show("已经是最后一页,请点击上一页!");

                    return;

                }

                else

                {

                    nCurrent = pageSize * (pageCurrent - 1);

                }

                LoadData(m_cardDataSet.Tables[0]);

            }


            if (e.ClickedItem.Text == "首页")

            {

                pageCurrent=1;

                

                nCurrent = pageSize * (pageCurrent - 1);


                LoadData(m_cardDataSet.Tables[0]);

            }

            if (e.ClickedItem.Text == "尾页")

            {

                pageCurrent = pageCount;


                if (pageCurrent > 0)

                {

                    nCurrent = pageSize * (pageCurrent - 1);

                }

                else

                {

                    nCurrent = 0;

                }


                LoadData(m_cardDataSet.Tables[0]);

            }

        }

温馨提示:答案为网友推荐,仅供参考