c#中翻页功能代码编辑
时间: 2024-10-15 08:12:10 浏览: 25
在C#中实现分页功能,通常会结合LINQ和数据访问技术(如ADO.NET或Entity Framework)。以下是一个简单的例子,假设我们有一个包含分页需求的`Employee`列表,并且数据库表`Employees`有`Id`, `Name`等字段:
```csharp
using System;
using System.Collections.Generic;
using System.Linq;
public class Employee
{
public int Id { get; set; }
public string Name { get; set; }
}
// 假设你有一个EmployeeRepository类用于数据库操作
public class EmployeeRepository
{
// 这里是查询所有员工的方法,需要替换为实际的数据库查询
public List<Employee> GetAllEmployees();
}
public class PaginationService
{
private readonly EmployeeRepository _repository;
public PaginationService(EmployeeRepository repository)
{
_repository = repository;
}
public PaginatedList<Employee> GetEmployees(int pageNumber, int pageSize)
{
// 计算偏移量
int offset = (pageNumber - 1) * pageSize;
// 使用Linq获取指定页的数据
var employees = _repository.GetAllEmployees()
.Skip(offset)
.Take(pageSize);
return new PaginatedList<Employee>
{
Items = employees,
TotalItemCount = _repository.GetAllEmployees().Count(),
CurrentPageNumber = pageNumber
};
}
}
// 使用示例
public static void Main()
{
var service = new PaginationService(new EmployeeRepository());
int currentPage = 2; // 示例第2页
int itemsPerPage = 10; // 每页显示10条
PaginatedList<Employee> paginatedEmployees = service.GetEmployees(currentPage, itemsPerPage);
foreach (var employee in paginatedEmployees.Items)
{
Console.WriteLine(employee.Name);
}
阅读全文