CMS Repeater选择前N行++

时间:2017-04-07 07:00:43

标签: kentico

我需要一个加载更多按钮来控制转发器显示的内容。

点击加载更多按钮后,这是我在后端的步骤:

  1. 转发器绑定数据(完整数据/所有行)。
  2. 保持转发器的最大项目数(静态)。
  3. 将总行设置为显示(静态)+ 1并初始化该值以选择前N行作为限制。
  4. Repeater再次绑定数据(仅显示的数量)。
  5. 检查转发器项目数是否小于最大项目数,如果不是,则隐藏更多加载按钮。
  6. 假设这些步骤可以给我预期的输出?

    //Declaration
    public static int max = 0;
    public static int totalShow = 0;
    
    //SetupControl()
    if(!IsPostBack){
      rptItems.ClassName = "Blog";
      rptItems.Path = "/Shared/%"
      rptItems.DataBind();
      max = rptItems.Items.Count();
    }
    
    //This part is put under a new function
    totalShow += 1;
    rptItems.SelectTopN = totalShow;
    rptItems.DataBind();
    lbnLoadMore.Visible = rptItems.Items.Count() < max;
    

    此外,我对如下所示的功能感到困惑:

    enter image description here

    enter image description here

    两者都来自班级CMSRepeater,有什么不同?我应该使用哪一个来设置限制?

1 个答案:

答案 0 :(得分:3)

使用static成员绝对不是一个好方法。它们的值将由应用程序的所有用户共享。有更好的方法来存储用户特定的数据:

  • 会话(服务器端)
  • JS(客户端)并通过查询字符串或隐藏字段将它们传递给服务器

关于TopNSelectTopN,他们会做同样的事情。这可能是因为向后兼容。

从算法的角度来看,不需要多次绑定数据,也不需要多次往返数据库。您只需要使用正确的值初始化数据源/转发器。

我建议你阅读以下文章以获得灵感: