winform中的DataGridView如何实现分页(C#)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了winform中的DataGridView如何实现分页(C#)相关的知识,希望对你有一定的参考价值。

使用四个button控件,分别实现首页、上一页、下一页、最后一页查询功能,并且每页只显示12条数据。

winfrom是应用程序 根本就不存在分页这个概念。
你只需要点击上一页 下一页 最后一页、首页 这些按钮事件里面 控制一下参数即可。‘
给你写个简单的分页语句:
select top 12 * from books where id not in(select top 12 id from books order by id) order by id
前面这个12意思是 查询前12条,后面这个12表示 不等于前12条。
合起来的意思 就是不等于前12条的前12条,也就是说 这个是第二页。
如果你想翻到第一页 后面12改为0即可。如果翻到第三页 后面12改为24.

这个很简单,不过你数据量过万 就还是考虑一下吧,这种语句效率不算很好。
参考技术A 这个是我在asp中的,不过你改改就该能用,希望对你有帮助。
前台代码,写在gridview的代码里,不过我没用按钮,用的是标签:
<PagerTemplate>
<asp:Label ID="lblPage" runat="server" Text='<%# "第" + (((GridView)Container.NamingContainer).PageIndex + 1) + "页/共" + (((GridView)Container.NamingContainer).PageCount) + "页" %> '></asp:Label>
<asp:LinkButton ID="lbnFirst" runat="Server" Text="首页" Enabled='<%# ((GridView)Container.NamingContainer).PageIndex != 0 %>'
CommandName="Page" CommandArgument="First"></asp:LinkButton>
<asp:LinkButton ID="lbnPrev" runat="server" Text="上一页" Enabled='<%# ((GridView)Container.NamingContainer).PageIndex != 0 %>'
CommandName="Page" CommandArgument="Prev"></asp:LinkButton>
<asp:LinkButton ID="lbnNext" runat="Server" Text="下一页" Enabled='<%# ((GridView)Container.NamingContainer).PageIndex != (((GridView)Container.NamingContainer).PageCount - 1) %>'
CommandName="Page" CommandArgument="Next"></asp:LinkButton>
<asp:LinkButton ID="lbnLast" runat="Server" Text="尾页" Enabled='<%# ((GridView)Container.NamingContainer).PageIndex != (((GridView)Container.NamingContainer).PageCount - 1) %>'
CommandName="Page" CommandArgument="Last"></asp:LinkButton>
到第<asp:TextBox Width="30" runat="server" ID="inPageNum"></asp:TextBox>页
<asp:Button ID="Button1" Text="GO" CommandName="go" runat="server" />
</PagerTemplate>

后台代码,在gridview的相应事件里写:
protected void Show_PageIndexChanging(object sender, GridViewPageEventArgs e)

this.gridviewCus.PageIndex = e.NewPageIndex;
BindGridView();//数据源绑定方法
参考技术B 介意你不要用四个按钮的形式做分页(因为我以前也是这么做的,结果发现不理想),你可以到网上下载一个。net的分页控件。配合该控件的分页代码,网上也是有很多的,实在差不多代码,在问我。我去找找以前做的。本回答被提问者采纳 参考技术C 很崩溃。你在ASP中做分页也许是考虑数据量大一次显示不方便,但是在winform中主要做没意义,通常来讲数据量在10W之内的时候显示不影响的。而且VS带的数据显示控件中也没有分页的功能。如果一定要分页,也只是把数据源进行分段,然后根据按钮的要求进行数据绑定。winform数据分页非常不推荐。 参考技术D 你可以在sql语句里实现分页呀,在自己添加或制作翻页控件

以上是关于winform中的DataGridView如何实现分页(C#)的主要内容,如果未能解决你的问题,请参考以下文章

C# winform程序中 如何获取和设置dataGridView1的垂直滚动条当前位置?

C# winform datagridView中的下拉框如何能实现可以手录或,通过模糊查询直接定位到想要的数据

C#winform程序中,将A窗体datagridview中选中的数据传到B窗体里面的各个文本框中进行修改

C# winform程序中如何向datagridview中添加一行

使用Entity Framework时如何在Winform场景下实现DataGridView的分页?

如何实现c# winform DataGridView添加一行,添加数据后,保存到数据库?