asp.net mvc 分页 CPager(秒杀杨涛MvcPager)之封装之前
来源:互联网 发布:高斯滤波器的算法 编辑:程序博客网 时间:2024/05/22 18:22
基于路由的分页
using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.Mvc;using CPager.Models;using System.Data.Entity;namespace CPager.Controllers{ public class HomeController : Controller { NiceMusicDBContext db = new NiceMusicDBContext(); public ActionResult Index(int id = 1) { return View(List_ViewBag<MP3>("MP3",id,20)); } public List<T> List_ViewBag<T>(string TableName,int PageIndex,int PageSize) { string sql1 = $"select count(*) from [{TableName}]"; int DataCount = db.Database.SqlQuery<int>(sql1).ToList()[0]; int PageCount = DataCount % PageSize == 0 ? DataCount / PageSize : DataCount / PageSize + 1; int min = PageSize * (PageIndex - 1); string sql2 = $"select top {PageSize} * from [{TableName}] where (ID not in(select top {min} ID from [{TableName}]))"; List<T> l = db.Database.SqlQuery<T>(sql2).ToList(); if (PageCount <= PageSize) { ViewBag.Flag = 0; } else { if (PageIndex <= 6) { ViewBag.Flag = 1; } else { if (PageIndex < PageCount - 4) { ViewBag.Flag = 2; } else { ViewBag.Flag = 3; } } } ViewBag.PageIndex = PageIndex; ViewBag.PageCount = PageCount; return l; } //public void ViewBag_Table_PageControll<T>(string TableName, int PageIndex, int PageSize) //{ //} }}
前台代码
@model IEnumerable<CPager.Models.MP3><!DOCTYPE html><html><head> <meta name="viewport" content="width=device-width" /> <title>CPager</title> <link href="~/CFrame.css" rel="stylesheet" /> <script src="~/CFrame.js"></script></head><body> <table class="tb1 position2"> <tr> <td>编号</td> <td>歌手名字</td> <td>歌手性别</td> <td>歌手分类</td> <td>音乐名称</td> <td>片段标识</td> <td>片段歌词</td> <td>时间(s)</td> </tr> @foreach (var item in Model) { <tr> <td>@item.Id</td> <td>@item.Singer_Name</td> <td>@item.Singer_Sex</td> <td>@item.Singer_Type</td> <td>@item.Song_Name</td> <td>@item.Song_Id</td> <td><a href="#">查看</a></td> <td>@item.Time</td> </tr> } </table> <div class="parent_div position2"> @if (ViewBag.Flag == 0) { int p = ViewBag.PageIndex - 1; string p_url = "/Home/Index/" + p; string n_url = "/Home/Index/" + (p + 2); string l_url = "/Home/Index/" + ViewBag.PageCount; if (ViewBag.PageIndex == 1) { <a class="fpnl disabled">首页</a> <a class="fpnl disabled">上页</a> } else { <a href="/Home/Index/1" class="fpnl">首页</a> <a href=@p_url class="fpnl">上页</a> } for (int i = 1; i <= ViewBag.PageCount; i++) { string g_url = "/Home/Index/" + i; if (i == p + 1) { <a href=@g_url class="co active">@i</a> continue; } <a href=@g_url class="co">@i</a> } if (ViewBag.PageIndex == ViewBag.PageCount) { <a class="fpnl disabled">下页</a> <a class="fpnl disabled">尾页</a> } else { <a href=@n_url class="fpnl">下页</a> <a href=@l_url class="fpnl">尾页</a> } } else if (ViewBag.Flag == 1) { int p = ViewBag.PageIndex - 1; string p_url = "/Home/Index/" + p; string n_url = "/Home/Index/" + (p + 2); string l_url = "/Home/Index/" + ViewBag.PageCount; if (ViewBag.PageIndex == 1) { <a class="fpnl disabled">首页</a> <a class="fpnl disabled">上页</a> } else { <a href="/Home/Index/1" class="fpnl">首页</a> <a href=@p_url class="fpnl">上页</a> } for (int i = 1; i <= 10; i++) { string g_url = "/Home/Index/" + i; if (i == p + 1) { <a href=@g_url class="co active">@i</a> continue; } <a href=@g_url class="co">@i</a> } <a href="/Home/Index/11" class="co">...</a> <a href=@n_url class="fpnl">下页</a> <a href=@l_url class="fpnl">尾页</a> } else if (ViewBag.Flag == 2) { int p = ViewBag.PageIndex - 1; string p_url = "/Home/Index/" + p; string nonel_url = "/Home/Index/" + (ViewBag.PageIndex - 6); string noner_url = "/Home/Index/" + (ViewBag.PageIndex + 5); string n_url = "/Home/Index/" + (p + 2); string l_url = "/Home/Index/" + ViewBag.PageCount; <a href="/Home/Index/1" class="fpnl">首页</a> <a href=@p_url class="fpnl">上页</a> <a href=@nonel_url class="co">...</a> for (int i = p - 4; i <= p + 5; i++) { string g_url = "/Home/Index/" + i; if (i == p + 1) { <a href=@g_url class="co active">@i</a> continue; } <a href=@g_url class="co">@i</a> } <a href=@noner_url class="co">...</a> <a href=@n_url class="fpnl">下页</a> <a href=@l_url class="fpnl">尾页</a> } else if (ViewBag.Flag == 3) { int p = ViewBag.PageIndex - 1; string p_url = "/Home/Index/" + p; string nonel_url = "/Home/Index/" + (ViewBag.PageCount - 10); string n_url = "/Home/Index/" + (p + 2); string l_url = "/Home/Index/" + ViewBag.PageCount; <a href="/Home/Index/1" class="fpnl">首页</a> <a href=@p_url class="fpnl">上页</a> <a href=@nonel_url class="co">...</a> for (int i = ViewBag.PageCount - 9; i <= ViewBag.PageCount; i++) { string g_url = "/Home/Index/" + i; if (i == p + 1) { <a href=@g_url class="co active">@i</a> continue; } <a href=@g_url class="co">@i</a> } if (ViewBag.PageIndex == ViewBag.PageCount) { <a class="fpnl disabled">下页</a> <a class="fpnl disabled">尾页</a> } else { <a href=@n_url class="fpnl">下页</a> <a href=@l_url class="fpnl">尾页</a> } } </div></body></html>
0 0
- asp.net mvc 分页 CPager(秒杀杨涛MvcPager)之封装之前
- asp.net mvc 分页 CPager(秒杀杨涛MvcPager)之封装之后
- asp.net mvc ajax分页 CPager(秒杀杨涛ajax分页) 封装之前
- Asp.net MVC使用MvcPager进行分页
- Asp.net MVC使用MvcPager进行分页
- .net mvc 分页,pagedlist,mvcpager
- asp.net mvc 灰常强大的分页控件---MvcPager
- asp.net mvc强大的分页控件MvcPager
- (推荐)asp.net mvc强大的分页控件MvcPager
- ASP.NET MVC分页控件MvcPager 1.5版发布
- ASP.NET MVC分页组件MvcPager 2.0版发布暨网站全新改版
- MVC MvcPager Ajax分页
- MVC MvcPager 普通分页
- [原]分享一个.NET MVC分页工具 MvcPager
- (easyui datagrid+mvc+json)之asp.net分页查询
- (easyui datagrid+mvc+json)之asp.net分页查询
- ASP.NET MVC 之表格分页
- ASP.NET中MvcPager(分页的第三方插件)的用法,献给小白(本人也小白一个)
- Spring-5:Bean之间的继承与依赖
- study plane
- Ext.data.XmlReader解析
- [BZOJ4554][JZOJ4612] 【TJOI&HEOI2016】D2T1 游戏
- windows远程连接失败
- asp.net mvc 分页 CPager(秒杀杨涛MvcPager)之封装之前
- codeforces C. NP-Hard Problem 二分图的判定
- uLua+SimpleFramework常见问题的解答及学习笔记
- C语言文件操作详解
- 2016夏季练习——dp
- stm32 移植rt_thread
- Path Sum II
- 高并发网站更新数据库数据比较高效的方式
- leetcode_c++:哈希:Top K Frequent Elements(347)