大概說一下思路,可以利用sql的 Offset/Fetch Next分頁,點擊這裏
這裏的Demo利用LINQ的寫好的方法
//這裏是某個表的列表 skip是跳過前面的多少條數據 take這是跳過前面的數據後顯示多少條數據
db.Albums.ToList().Skip((pageNumber - 1) * pageSize).Take(pageSize).ToList();
我們是四個按鈕一個首頁,上一頁,下一頁,尾頁,點擊跳轉
有不明白的,或者小編描述錯誤的模糊的歡迎評論私信
這個頁面的前臺頁面
<%@ Page Title="" Language="C#" MasterPageFile="~/Admin/AdminSite.Master" AutoEventWireup="true" CodeBehind="MusicManager.aspx.cs" Inherits="WebApplication1.Admin.MusicManager1" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
<link href="../Assets/css/input.css" rel="stylesheet" />
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<div class="pure-form">
<fieldset>
<%--genres表--%>
<legend>後臺管理<i class="fa fa-angle-double-right"></i>音樂管理
<asp:Button ID="Button1" runat="server" CssClass="button-default pure-button-primary tools-button" Text="添加音樂" OnClick="Button1_Click" />
</legend>
</fieldset>
</div>
<table class="pure-table">
<thead>
<tr>
<th>#</th>
<th>音樂名稱</th>
<th>歌手名稱</th>
<th>標題</th>
<th>單價</th>
<th>圖片</th>
<th>編輯</th>
</tr>
</thead>
<tbody>
<asp:Repeater ID="Repeater1" runat="server" OnItemCommand="Repeater1_ItemCommand">
<ItemTemplate>
<tr>
<td><%# Eval("AlbumId") %></td>
<td><%# Eval("Genres.Name") %></td>
<td><%# Eval("Artists.Name") %></td>
<td><%# Eval("Title") %></td>
<td><%# Eval("Price") %></td>
<td><%# Eval("AlbumArtUrl") %><asp:Image ID="Image1" ImageUrl='<%# "~"+Eval("AlbumArtUrl") %>' runat="server" Width="40px" Height="40px" /></td>
<td>
<asp:LinkButton ID="LinkButton1" CssClass="button-default pure-button-primary" runat="server" CommandArgument='<%#Eval("AlbumId") %>' CommandName="Edit">編輯</asp:LinkButton>
<asp:LinkButton ID="LinkButton2" CssClass="button-default button-error" runat="server" CommandArgument='<%#Eval("AlbumId") %>' CommandName="Delete">刪除</asp:LinkButton></td>
</tr>
</ItemTemplate>
</asp:Repeater>
<tr>
<td colspan="6">
<asp:Label ID="Label1" runat="server"></asp:Label>
<asp:Button ID="btnFirst" runat="server" Text="首頁" OnClick="btnFirst_Click" />
<asp:Button ID="btnPrev" runat="server" Text="上頁" OnClick="btnPrev_Click" />
<asp:Button ID="btnNext" runat="server" Text="下頁" OnClick="btnNext_Click" />
<asp:Button ID="btnLast" runat="server" Text="尾頁" OnClick="btnLast_Click" />
</td>
</tr>
</tbody>
</table>
</asp:Content>
這個頁面的後臺頁面
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using WebApplication1.BLL;
using WebApplication1.DAL;
namespace WebApplication1.Admin
{
public partial class MusicManager1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
LoadData();
}
protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
{
string str = e.CommandName.ToString();
//這裏獲取id,我的id是剛纔我賦值的時候CommandArgument是賦值的id
int id = Convert.ToInt32(e.CommandArgument.ToString());
//using (OLMSDBEntities oLMSDB = new OLMSDBEntities())
//{
// var gener = oLMSDB.Genres.FirstOrDefault(t => t.GenreId == id);
if (str == "Delete")
{
//後面是對數據庫的操作,可以忽略
// oLMSDB.Genres.Remove(gener);
bool flag_deleteMussicType = BLL.MusicManager.deleteMusicManager(id);
if (flag_deleteMussicType)
{
string strUrl = "<script>alert('刪除成功');window.location.href='MusicManager.aspx'</script>";
Response.Write(strUrl);
}
else
{
string strUrl = "<script>alert('刪除失敗');</script>";
Response.Write(strUrl);
}
}
else if (str == "Edit")
{
Response.Redirect($"Edit_MusicManager.aspx?id={id}");
}
}
protected void Button1_Click(object sender, EventArgs e)
{
Response.Redirect("Add_MusicManager.aspx");
}
//分頁的具體代碼
//頁碼
public int pageNumber
{
//取值的話,如果裏面沒有就說明第一次進入,然後給它賦值,下面在取值
get
{
if (ViewState["page"] == null)
{
return 1;
}
else
{
return Convert.ToInt32(ViewState["page"]);
}
}
set
{
ViewState["page"] = value;
}
}
//每頁的記錄數
public int pageSize
{
get
{
return 5;
}
}
//總頁數
public int pageCount
{
get
{
if (ViewState["count"] == null)
{
return 1;
}
else
{
return Convert.ToInt32(ViewState["count"]);
}
}
set
{
ViewState["count"] = value;
}
}
public void LoadData()
{
using (OLMSDBEntities oLMSDB = new OLMSDBEntities())
{ //這裏是某個表的列表 skip是跳過前面的多少條數據 take這是跳過前面的數據後顯示多少條數據
// //這裏是我需要顯示第三頁的數據,我們要跳過二頁的數據,所以是(3-1)*一頁的數據量
Repeater1.DataSource = oLMSDB.Albums.ToList().Skip((pageNumber - 1) * pageSize).Take(pageSize).ToList();
Repeater1.DataBind();
pageCount = oLMSDB.Albums.ToList().Count;
Label1.Text = $"每頁{pageSize}條,共{pageCount}條 ";
//我們最後剩下一行數據也要在加一頁,如果有餘數就要加一頁
pageCount = pageCount % pageSize == 0 ? pageCount / pageSize : pageCount / pageSize + 1;
}
Label1.Text += "當前頁數爲" + pageNumber + "/" + pageCount;
}
//首頁
protected void btnFirst_Click(object sender, EventArgs e)
{
pageNumber = 1;
LoadData();
}
//上一頁
protected void btnPrev_Click(object sender, EventArgs e)
{
//防止到0頁,如果到0頁的話,我們就是到1頁
pageNumber = pageNumber - 1 < 1 ? pageNumber = 1 : pageNumber - 1;
LoadData();
}
//下一頁
protected void btnNext_Click(object sender, EventArgs e)
{
//防止超出所有的頁面總數,超出的話,就賦值頁面總數
pageNumber = pageNumber + 1 > pageCount ? pageNumber = pageCount : pageNumber + 1;
LoadData();
}
//尾頁
protected void btnLast_Click(object sender, EventArgs e)
{
pageNumber = pageCount;
LoadData();
}
}
}
效果圖