C# 在c中单击数据库中的按钮加载前20项,然后加载下20项#
我想做一些类似分页的事情。假设我们的数据库中有100个联系人。当我的索引页面第一次加载时,它将从数据库中加载20个联系人项目。页面末尾有一个“更多”按钮。当用户单击该按钮时,我想从数据库中加载接下来的20个项目,并在已经显示的联系人下方显示它们C# 在c中单击数据库中的按钮加载前20项,然后加载下20项#,c#,asp.net,asp.net-mvc-3,C#,Asp.net,Asp.net Mvc 3,我想做一些类似分页的事情。假设我们的数据库中有100个联系人。当我的索引页面第一次加载时,它将从数据库中加载20个联系人项目。页面末尾有一个“更多”按钮。当用户单击该按钮时,我想从数据库中加载接下来的20个项目,并在已经显示的联系人下方显示它们 public ActionResult Index(int no) { var contacts = GetContactFromDB(no) //no is used to know what is the current page nu
public ActionResult Index(int no)
{
var contacts = GetContactFromDB(no) //no is used to know what is the current page number
}
public IList<Contact> GetContactFromDB(int pagenumber)
{
// here write the query to get next 20 items
}
public ActionResult索引(int-no)
{
var contacts=GetContactFromDB(no)//no用于知道当前页码
}
公共IList GetContactFromDB(int页码)
{
//在这里编写查询以获取接下来的20项
}
我想有一件事我忘了告诉你,我不想失去前20个。我的意思是,当用户单击按钮时,接下来的20个联系人将使用AJAX请求从数据库中获取,并将这些新的20个联系人附加到之前的联系人之后 只需结合使用Linq中的和扩展方法:
return Contacts.Skip(PageSize * pageNumber).Take(PageSize).ToList();
注意:这不考虑您如何获得联系人
。但是我想你已经知道:)而且,它假设pageNumber
是基于0的。如果使用Linq To SQL或Linq To Entities,则对
Skip
和Take
的调用也将转换为最终数据库查询的一部分 只需结合使用Linq中的和扩展方法:
return Contacts.Skip(PageSize * pageNumber).Take(PageSize).ToList();
注意:这不考虑您如何获得联系人
。但是我想你已经知道:)而且,它假设pageNumber
是基于0的。如果使用Linq To SQL或Linq To Entities,则对
Skip
和Take
的调用也将转换为最终数据库查询的一部分 给你
public IList<Contact> GetContactFromDB(int pagenumber)
{
return context.Contacts.OrderBy(p=>p).Skip(pagenumber*10).Take(10).ToList();
}
public IList GetContactFromDB(int页码)
{
返回context.Contacts.OrderBy(p=>p).Skip(页码*10).Take(10).ToList();
}
您可以使用所需联系人类的任何字段进行订购
此外,我建议您将希望在每个页面中显示的联系人数(在本例中为10)存储为常量。这将使您的代码更加通用。给您
public IList<Contact> GetContactFromDB(int pagenumber)
{
return context.Contacts.OrderBy(p=>p).Skip(pagenumber*10).Take(10).ToList();
}
public IList GetContactFromDB(int页码)
{
返回context.Contacts.OrderBy(p=>p).Skip(页码*10).Take(10).ToList();
}
您可以使用所需联系人类的任何字段进行订购
此外,我建议您将希望在每个页面中显示的联系人数(在本例中为10)存储为常量。它将使您的代码更加通用。在asp.net表单中,我会用当前索引(20,40)隐藏,并且总是从x-20到x进行操作。在asp.net表单中,我会用当前索引(20,40)隐藏,并且总是从x-20到x进行操作。什么数据库?你试过什么?你的问题是什么?你试过什么?什么数据库?你试过什么?你的问题是什么?你试过什么?