首页 > 解决方案 > Kentico CMS Repeater UniPager 在一页上显示所有内容

问题描述

我前面有以下代码:

<cms:CMSRepeater ID="RepItems" runat="server" DataBindByDefault="false">
    <ItemTemplate>
        //code
    </ItemTemplate>
</cms:CMSRepeater>
<div class="paging-bar flex">
    <cms:UniPager ID="Pager" runat="server">
        <PageNumbersTemplate>
            //template code here
        </PageNumbersTemplate>
    </cms:UniPager>
</div>

在后面的代码中,我将此方法称为SetupControl()

var data = //call to webservice
if (!DataHelper.DataSourceIsEmpty(data))
{
    RepItems.DelayedLoading = true;
    RepItems.DataSource = data;
    DataBind();
    RepItems.ControlContext = ControlContext; //tried with and without
    RepItems.EnablePaging = true; //tried with and without
    RepItems.PageSize = PagingPageSize; //tried with and without
    RepItems.UniPagerControl = Pager; //tried with and without


    Pager.PageSize = PagingPageSize;
    Pager.DisplayFirstLastAutomatically = true;
    Pager.DisplayPreviousNextAutomatically = true;
    Pager.HidePagerForSinglePage = true;
    Pager.GroupSize = 3;
    Pager.PageControl = RepItems.ID;
    Pager.UseQueryParameterForFirstPage = true;
    Pager.PagerMode = CMS.DocumentEngine.Web.UI.UniPagerMode.Querystring;

    //DataBind();
}

但是转发器显示所有没有分页的项目。有什么我想念的吗?调试时,我得到了 PagingPageSize 的预期值,但 Repeater.PageCount 总是给我一个值 1。

我已经按照 K12 文档https://docs.xperience.io/k12sp/developing-websites/kentico-controls/generic-controls/paging-controls/unipager

标签: asp.netkenticoascxasprepeaterkentico-12

解决方案


尝试使用 BasicRepeater 控件而不是 CMSRepeater。

  • 当您手动设置中继器的数据源时,应该恰好在这些情况下使用 BasicRepeater。
  • 当您尝试显示由 CMSRepater 通过“路径”属性自动加载的页面时,应使用 CMSRepeater。

推荐阅读