我试图在没有太大成功的情况下找到上述问题的答案 - 或许我会提出错误的问题或采取错误的方法。
我使用的是C#,Asp.Net,但仍然在框架的第4版。
我使用listview控件来显示有限数量的项目。通常,我会显示10个项目并添加分页,但是我在这个场合寻找一种略有不同的方法。
与许多现代应用程序一样,我不想添加更多'更多'按钮,只是附加到我已经拥有的页面项目,但我无法看到这是如何可能的。当然我可以回去获得20件物品,而不是10件物品,然后重新点燃,但经过几次点击(30,40,50 ......),这可能变得笨拙而且非常缓慢。
我对Ajax做的不多,所以它可能是另一种追求的途径,但不是在完全错误的情况下潜水,我对如何最好地接近它有一些建议
提前致谢。
答案 0 :(得分:0)
您可以实现服务器端或客户端。
服务器端 - 假设有一个
List<Foo> foos = new List<Foo>();
private FillList()
{
//...
}
private int CurrentPage
{
get
{
object obj = ViewState["CurrentPage"];
if (obj != null)
return (int)obj;
return 0;
}
set
{
ViewState["CurrentPage"] = value;
}
}
private void RptBind(int curPage, int pageSize)
{
rptFoos.DataSource = foos.Skip(pageSize * curPage).Take(pageSize);
rptFoos.Databind();
}
protected void btnNext_Click(object sender, EventArgs e)
{
CurrentPage += 1;
RptBind(CurrentPage, 10);
}
和中继器:
<asp:Repeater runat="server" id="rptFoos">
<ItemTeplate>
<asp:Label runat="server" id="lblFoo" Text="<%# ((Foo)Container.DataItem).Name %>">
</ItemTemplate>
</asp:Repeater>
<asp:Button runat="server" id="btnNext" Text="Next" OnClick="btnNext_Click">
以上代码未经过测试。