asp.net - 当页面参数超过页面计数时,Kentico Pager.PageCount 0
问题描述
当页面参数超过可用页面的最大数量时,有没有办法获取 Pager.PageCount 值?
在下面的代码中,只要页面参数在 1 到 3 之间,totalPages = 3。
但是,如果页面参数 > 3,totalPages 的值 = 0。我想获取 totalPages 的值,以便将客户端重定向到最后一页。
private void InitRepeater()
{
RepItems.ClassNames = ClassNames;
RepItems.MaxRelativeLevel = MaxRelativeLevel;
RepItems.OrderBy = OrderBy;
RepItems.SelectTopN = SelectTopN;
RepItems.Path = Path;
RepItems.FilterOutDuplicates = true;
RepItems.SelectOnlyPublished = true;
RepItems.SelectedColumns = GetSelectedColumns();
SetCategories();
Pager.PageSize = PagingPageSize;
Pager.DisplayFirstLastAutomatically = true;
Pager.DisplayPreviousNextAutomatically = true;
Pager.HidePagerForSinglePage = true;
Pager.GroupSize = 3;
Pager.PageControl = RepItems.ID;
Pager.UseQueryParameterForFirstPage = true;
DataBind();
var currentPage = Pager.CurrentPage;
var totalPages = Pager.PageCount;
WebpartExtensions.ValidatePageParam((ulong)currentPage, (ulong)totalPages);
WebpartExtensions.UpdateSEOBotLinks(Page, currentPage, totalPages);
}
解决方案
想出了一个解决方法
var currentPage = Pager.CurrentPage;
var totalPages = Pager.PageCount;
if(totalPages <= 0)
{
//page param greater than amount of pages, reset to page 1 to get total pages
Pager.CurrentPage = 1;
RepItems.ReloadData(true);
totalPages = Pager.PageCount;
Pager.CurrentPage = totalPages;
RepItems.ReloadData(true);
}
WebpartExtensions.ValidatePageParam((ulong)currentPage, (ulong)totalPages);
WebpartExtensions.UpdateSEOBotLinks(Page, currentPage, totalPages);
推荐阅读
- c++ - “cin>>”与“cin.get”有何不同?或者不是吗?
- android-studio - 使用代码中的自定义适配器更改列表视图中复选框的状态
- javascript - 如何仅将 CSS 样式应用于选定的行?
- c - CMake:获取根项目名称
- javascript - 通过 JavaScript 向 html 表添加新项目无法按我的预期工作
- hive - KSQL(汇合)VS Hive Kafka SQL(Hortanworks)
- istio - Istio - 在 LoadBalancer 上打开所有这些端口是什么?
- git - Git将文件添加到已包含文件的repo
- java - Firestore - 根据字段获取特定文档?
- amazon-web-services - 如何将 git 项目从 Amazon EC2 克隆到我的本地系统?