C# ListView控件-获取更多项目
我试图找到上述问题的答案,但没有多大成功——也许我问错了问题或采取了错误的方法 我使用的是C#,Asp.Net,但是仍然是框架的版本4 我使用listview控件来显示有限数量的项。通常情况下,我会显示10个项目并添加分页,但在这种情况下,我会寻找一种略微不同的方法 像许多现代应用程序一样,我不想添加“更多”按钮,只想在我已有的页面项目中添加内容,但我看不出这是怎么可能的。当然,我可以返回并获得20个项目,而不是10个项目,然后重新绑定,但在几次单击(30、40、50…)后,这可能会变得非常笨拙和缓慢 我在Ajax方面做得不多,所以它可能是另一种追求的途径,但与其全力以赴地把它弄错,不如给我一些关于如何最好地实现它的建议C# ListView控件-获取更多项目,c#,asp.net,ajax,listview,C#,Asp.net,Ajax,Listview,我试图找到上述问题的答案,但没有多大成功——也许我问错了问题或采取了错误的方法 我使用的是C#,Asp.Net,但是仍然是框架的版本4 我使用listview控件来显示有限数量的项。通常情况下,我会显示10个项目并添加分页,但在这种情况下,我会寻找一种略微不同的方法 像许多现代应用程序一样,我不想添加“更多”按钮,只想在我已有的页面项目中添加内容,但我看不出这是怎么可能的。当然,我可以返回并获得20个项目,而不是10个项目,然后重新绑定,但在几次单击(30、40、50…)后,这可能会变得非常笨拙
提前感谢。您可以在服务器端或客户端实现它 服务器端-假设有一个
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);
}
List foos=new List();
私有填充列表()
{
//...
}
私有int当前页
{
得到
{
object obj=ViewState[“CurrentPage”];
如果(obj!=null)
返回(int)obj;
返回0;
}
设置
{
ViewState[“CurrentPage”]=值;
}
}
私有void RptBind(int curPage,int pageSize)
{
rptFoos.DataSource=foos.Skip(pageSize*curPage).Take(pageSize);
rptFoos.Databind();
}
受保护的void btnNext_单击(对象发送方,事件参数e)
{
当前页面+=1;
RptBind(当前第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">
上述代码未经测试。如果问题涉及数据库,您可以在此处找到如何对查询结果进行分页:您可以发布一些代码吗?它是解决方案服务器端吗?我可以建议使用Repeater而不是ListView吗?我知道如何对查询结果进行分页,但我要问的不是分页,而是扩展数据而不是替换数据。您可以通过在ASP.NET ListView中搜索“无限滚动”来获得一些想法。这里有一个链接提供了一些有趣的参考:。再一次,这是分页,我不是在寻找分页-我想扩展数据源,而不是每次替换它-所以第一次我可能会显示10个结果,下一次20个,下一次30个,依此类推。您可以很容易地更改此代码:
foos.Skip(pageSize*curPage)。取(页面大小)代码>