ListView控件 - 获取更多项目

时间:2016-04-15 09:49:40

标签: c# asp.net ajax listview

我试图在没有太大成功的情况下找到上述问题的答案 - 或许我会提出错误的问题或采取错误的方法。

我使用的是C#,Asp.Net,但仍然在框架的第4版。

我使用listview控件来显示有限数量的项目。通常,我会显示10个项目并添加分页,但是我在这个场合寻找一种略有不同的方法。

与许多现代应用程序一样,我不想添加更多'更多'按钮,只是附加到我已经拥有的页面项目,但我无法看到这是如何可能的。当然我可以回去获得20件物品,而不是10件物品,然后重新点燃,但经过几次点击(30,40,50 ......),这可能变得笨拙而且非常缓慢。

我对Ajax做的不多,所以它可能是另一种追求的途径,但不是在完全错误的情况下潜水,我对如何最好地接近它有一些建议

提前致谢。

1 个答案:

答案 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">

以上代码未经过测试。