MVC 分页 (非ajax)

《1》

这个分页代码其实是单独的。他会默认调用Home控制器下的Index视图,然后传递一个page参数。

Inde视图

@{
    ViewBag.Title = "Index";
}
<script src="~/Scripts/jquery-1.8.2.js"></script>
<style>
    body {
        padding: 0;
        margin: 0;
        font: normal 14px/25px "\5FAE\8F6F\96C5\9ED1";
        color: #333;
    }

    input {
        margin: 0;
        padding: 0;
    }

    a {
        color: #333;
        text-decoration: none;
    }

    .page {
        margin-top: 10%;
        line-height: 30px;
        text-align: center;
    }

        .page a {
            margin: 0 3px;
            display: inline-block;
            padding: 0 10px;
            border: 1px solid #CCC;
        }

            .page a:hover {
                background: #F5F5F5;
            }

            .page a.on {
                background: #3BA2E3;
                border-color: #3BA2E3;
                color: #FFF;
            }

            .page a.page_turn:hover {
                background: #3BA2E3;
                border-color: #3BA2E3;
                color: #FFF;
                box-shadow: 1px 1px 3px #CCC;
            }

        .page input {
            width: 30px;
            height: 28px;
            line-height: 28px;
            margin-right: 8px;
            padding-left: 5px;
            border: 1px solid #CCC;
            vertical-align: top;
        }

            .page input:hover {
                border-color: #3BA2E3;
            }
</style>

<table>
    <tr><th>Id</th><th>UserName</th><th>Password</th><th>Email</th><th>Errors</th><th>Session</th></tr>
    @foreach (var a in ViewBag.Data)
    {
        <tr><td>@a.Id</td><td>@a.UserName</td><td>@a.Password</td><td>@a.Email</td><td>@a.Errors</td><td>@a.Session</td></tr>
    }   
</table>

<div id="page" class="page"></div>


<script>
    var Page = 1, MaxPage = 20;  //当前页为第一页,最大页设为20
    locat()
    if (MaxPage != "" && MaxPage > 1) {
        document.getElementById("page").innerHTML = Pagehtml()
        document.getElementById("page_btn").onclick = function () {  //如果用户点击了GO
            var _page = document.getElementById("page_text").value  //获取到用户要跳转到”第几页“的值
            var r = /^[0-9]*[1-9][0-9]*$/;  //正整数
            if (_page != "" && r.test(_page)) {
               
                if (MaxPage < _page) {
                    _page = MaxPage
                }

                this.href = "/Home/Index?page=" + _page
            }
        }
        document.getElementById("page_text").onkeyup = function (event) {
            if (event == "undefined") {
                event = window.event;
            }
            if (event.keyCode == 13) {
                document.getElementById("page_btn").click();
                return false;
            }
        }
    }

    function locat() {
        var url = window.location.search;   //接收地址中传递的参数并产生响应
        if (url.indexOf("?") != -1) {
            var str = url.substr(1)
            strs = str.split("&");
            for (i = 0; i < strs.length; i++) {
                if ([strs[i].split("=")[0]] == 'page') Page = unescape(strs[i].split("=")[1]);
            }
        }
    }
    function Pagehtml() {//分页代码
        var PageStr = "", jj = "";
        Page = parseInt(Page);
        var xPage = Page - 2, dPage = Page + 2
        if (xPage < 1) {
            xPage = 1
            dPage = 5
        }
        if (dPage > MaxPage) {
            dPage = MaxPage
            xPage = (dPage - 4)
        }
        if (xPage < 1) {
            xPage = 1
        }
        if (Page == 1) {
            PageStr += "<a class='page_turn'>上一页</a>"
        } else {                                       //注意:href='/Home/Index?page=" + (Page - 1) + "'还可以写成  href='?page=" + (Page - 1) + "'
            PageStr += "<a class='page_turn' href='/Home/Index?page=" + (Page - 1) + "'>上一页</a>"  
        }
        if (xPage > 1) {
            PageStr += "<a href='/Home/Index?page=1'>1</a>"
        }
        if (xPage > 2) {
            PageStr += " ..."
        }
        for (var j = xPage; j <= dPage; j++) {
            PageStr += (Page == j) ? " <a class=\"on\">" + j + "</a>" : " <a href='/Home/Index?page=" + j + "'>" + j + "</a>";
        }
        if (dPage < MaxPage - 1) {
            PageStr += " ..."
        }
        if (dPage < MaxPage) {
            PageStr += " <a href='/Home/Index?page=" + MaxPage + "'>" + MaxPage + "</a>"
        }
        if (Page == MaxPage) {
            PageStr += "<a class='page_turn'>下一页</a>"
        } else {
            PageStr += "<a class='page_turn' href='/Home/Index?page=" + (Page + 1) + "'>下一页</a>"
        }
        PageStr += ' 跳转到:<input id="page_text" type="text" name="page_text"><a id="page_btn" class="page_turn" href="javascript:;">GO</a>'
        return PageStr
    }
</script>

Home控制器

using MvcTest.DAL;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace MvcTest.Controllers
{
    public class HomeController : Controller
    {
        T_UserService user = new T_UserService();

        public ActionResult Index(int page = 1)
        {
            ViewBag.Data=user.GetTuserInfo(page,5);
            return View();
        }
    }
}


郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。