CMS 转发器 Select 前 N 行++
CMS Repeater Select top N row++
我需要一个加载更多按钮来控制转发器显示的内容。
点击“加载更多”按钮后,我在后端执行的步骤如下:
- 中继器绑定数据(完整 data/All 行)。
- 保持转发器的最大项目数(静态)。
- 将总行设置为显示(静态)+ 1 并将值初始化为 select 前 N 行作为限制。
- Repeater再次绑定数据(只显示数量)。
- 检查转发器项目数是否小于最大项目数,如果不是则隐藏加载更多按钮。
假设这些步骤可以给我预期的输出?
//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;
此外,我对如下所示的功能感到困惑:
两者都来自class CMSRepeater
,有什么不同?我应该使用哪一个来设置限制?
使用static
成员绝对不是一个好的方法。它们的值将由应用程序的所有用户共享。有更好的方法来存储用户特定的数据:
- 会话(服务器端)
- JS(客户端)并通过查询字符串或隐藏字段将它们传递给服务器
关于TopN
和SelectTopN
,他们做同样的事情。可能是因为向后兼容。
从算法的角度来看,不需要多次绑定数据,也不需要多次往返数据库。您只需要用正确的值初始化 datasource/repeater。
我建议您阅读以下文章以获得一些灵感:
我需要一个加载更多按钮来控制转发器显示的内容。
点击“加载更多”按钮后,我在后端执行的步骤如下:
- 中继器绑定数据(完整 data/All 行)。
- 保持转发器的最大项目数(静态)。
- 将总行设置为显示(静态)+ 1 并将值初始化为 select 前 N 行作为限制。
- Repeater再次绑定数据(只显示数量)。
- 检查转发器项目数是否小于最大项目数,如果不是则隐藏加载更多按钮。
假设这些步骤可以给我预期的输出?
//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;
此外,我对如下所示的功能感到困惑:
两者都来自class CMSRepeater
,有什么不同?我应该使用哪一个来设置限制?
使用static
成员绝对不是一个好的方法。它们的值将由应用程序的所有用户共享。有更好的方法来存储用户特定的数据:
- 会话(服务器端)
- JS(客户端)并通过查询字符串或隐藏字段将它们传递给服务器
关于TopN
和SelectTopN
,他们做同样的事情。可能是因为向后兼容。
从算法的角度来看,不需要多次绑定数据,也不需要多次往返数据库。您只需要用正确的值初始化 datasource/repeater。
我建议您阅读以下文章以获得一些灵感: