我有一个问题与GridView。即使我启用了AllowPaging,我仍然无法看到页码和浏览页面。数据是根据页面大小带来的,但是分页细节(比如页面的数量不会出现,所以我可以进一步导航)。
<asp:GridView ID="recItemsGrid" runat="server" AutoGenerateColumns="false" Width="100%" BorderColor="#f5f5f5"
BorderStyle="Solid" BorderWidth="1px" AllowPaging="true" PageSize="3" OnPageIndexChanging="recItems_OnPageIndexChanging">
个字符
1条答案
按热度按时间uidvcgyl1#
好吧,使用内置分页器的问题是它仍然需要总行数。
所以,如果有100行,那么你的数据源必须返回100行,否则页码和计数都会被打乱。
现在,你在“猜”你的代码?您希望以正确的方式执行此操作,并且只从数据库中提取实际的行数。
您没有提到总行数。然而,如果总的原始数据拉取是说200行,那么我会让它流到内置的数据寻呼系统。
请记住,内置的数据寻呼机系统实际上作弊。它从来没有为你限制数据拉取,但只有通过限制有效负载(输出)到网页,使页面工作“合理”。
内置寻呼机吗嗯,好到最多约200或300行顶部。每次重新绑定时,您只需“馈送”数据源ALL THE ROWS。(这就是它的工作原理)。
如前所述,如果您的数据集大于200-300行,那么您可能应该转储内置的分页器,并滚动自己的分页器。这样,您只会为给定的页面提取行。
因此,要么删除试图只从数据源中提取行页面的代码,并始终向gv提供完整的数据集--这就是内置分页器的工作方式。
当你真正只拉取一页数据行的瞬间,那么页数将不起作用并且将全部错误,因为页数是由你拉取的数据集的大小决定的。
所以,假设这个工作:
字符串
后面的代码:
型
您注意到非常接近实际上如何每次提取完整数据集。
结果是这样的:
x1c 0d1x的数据
所以,如果你要做真实的数据库分页(内置的寻呼机不做),那么你可能最好建立你自己的寻呼机系统)。它肯定会比内置系统表现得好得多,正如我所指出的,内置系统实际上并不限制拉取的数据,但每次只拉取所有行,并使用行计数来确定要放进寻呼机的页数。然后从FULL数据集中拉出行的页。
使用自己的分页器应该不是那么困难,其优点是性能非常好,特别是如果您使用SQL Server端数据分页功能。这就意味着,建议您可以对任何大小的数据库进行分页,并且您将只从数据库中提取一页数据和行。(SQL Server 2012或更高版本确实具有分页支持)。
我认为使用单选按钮列表将是一个很好的选择,控件呈现“x”个按钮,这也将因此在控件列表中自动突出显示“一个项目”(对于您所在的页码)。
你没提过你有多少排吗?但是,如果少于200,那么删除传递页码的代码,并始终将整个数据集输入GV,让寻呼机为您拉出一页。