Kentico CMS中继器选择前N行++

Kentico CMS中继器选择前N行++,kentico,Kentico,我需要一个加载更多按钮来控制中继器显示的内容 以下是单击“加载更多”按钮后我在后端的步骤: 中继器绑定数据完整数据/所有行。 保持中继器的最大项目数为静态。 将总计行设置为显示静态+1,并初始化该值以选择前N行作为限制。 中继器再次绑定数据,仅显示数量。 检查中继器项目数是否小于最大项目数,如果不小于,则隐藏“加载更多”按钮。 假设这些步骤可以给我预期的输出 //Declaration public static int max = 0; public static int totalShow

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

以下是单击“加载更多”按钮后我在后端的步骤:

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

//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;
此外,我对如下所示的函数感到困惑:

都是CMSRepeater班的,有什么不同?我应该使用哪一个来设置限制?

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

会话服务器端 JS客户端,并通过查询字符串或隐藏字段将其传递给服务器 关于TopN和SelectTopN,它们做同样的事情。这可能是因为向后兼容

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

我建议您阅读以下文章以获得一些灵感:

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

会话服务器端 JS客户端,并通过查询字符串或隐藏字段将其传递给服务器 关于TopN和SelectTopN,它们做同样的事情。这可能是因为向后兼容

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

我建议您阅读以下文章以获得一些灵感:

通过 通过
由于静态值将由应用程序的所有用户共享,所以我决定将其设置为私有。。。要将其限制在my.ascx fileVisibility public、private和protected中。。。与static关键字无关。如果使用static,则表示整个应用程序中只有该成员/类的一个实例。我建议阅读c参考,因为应用程序的所有用户都将共享静态值,所以我决定将其设置为私有。。。要将其限制在my.ascx fileVisibility public、private和protected中。。。与static关键字无关。如果使用static,则表示整个应用程序中只有该成员/类的一个实例。我建议阅读c参考资料