MVC简单分页

对Car汽车表分页

实现简单分页,放在这里方便查看回顾,自定义每页几条有点问题,有待完善······

1.新建mvc项目

2.添加linq to sql 数据库连接

3.添加CarBF类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace Mvc简单分页.Models
{
    public class CarBF
    {
        private MyDBDataContext _Context = new MyDBDataContext();
        //获取总页数
        public int GetPageCount(int pageSize)
        {
            int rowsCount = _Context.Car.Count();
            int pageCount = (int)Math.Ceiling(1.0 * rowsCount / pageSize);//取天花板数
            return pageCount;
        }
        //获取指定页数据
        public List<Car> Select(int PageSize, int PageNo)
        {
            var query = _Context.Car.Skip(PageSize * (PageNo - 1)).Take(PageSize);
            return query.ToList();
        }
    }
}

  添加HomeController控制器

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Mvc简单分页.Models;

namespace Mvc简单分页.Controllers
{
    public class HomeController : Controller
    {
        private int PAGESIZE = 5;//每页多少条数据
        //
        // GET: /Home/

        public ActionResult Index(int? id)
        {
            ViewBag.pagesize = PAGESIZE;
            if (id == null)
            {
                id = 1;
            }
            List<Car> list = new CarBF().Select(PAGESIZE, id.Value);//找出当前数据
            int pageCount = new CarBF().GetPageCount(PAGESIZE);//找出总页数
            int nextPageNo = id.Value >= pageCount ? pageCount : id.Value + 1;//计算下一页页号
            int prevPageNo = id.Value == 1 ? 1 : id.Value - 1;//计算上一页页号
            //使用viewbag带到视图去
            ViewBag.NextPageNo = nextPageNo;
            ViewBag.PrevPageNo = prevPageNo;
            ViewBag.PageCount = pageCount;//总页数
            ViewBag.PageNo = id;//当前页号

            //下拉列表显示页数需要的selectlist数据
            List<int> listPage = new List<int>();
            for (int i = 1; i <= pageCount; i++)
            {
                listPage.Add(i);
            }
            SelectList li = new SelectList(listPage, id);
            ViewBag.PageList = li;

            return View(list);
        }

    }
}

  添加视图--用默认的Index视图

@{
    Layout = null;
}
@using Mvc简单分页.Models;
@model List<Car>
<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>分页</title>
</head>
<body>
    <div>
        <h1>分页</h1>
        @using (@Html.BeginForm("Index", "Home", FormMethod.Post, new { id = "form2" }))//******************
        {
            //string str = ViewBag.PAGESIZE;
            @:每页 @Html.TextBox("id", (int)ViewBag.PAGESIZE, new { onchange = "form.submit()" }) 条<input id="Button1" type="button" value="确定" />
        }

        <table border="0" width="100%" cellpadding="5" cellspacing="1" bgcolor="navy" style="text-align: center">
            <tr style="color: white; background-color: navy; text-align: center; font-weight: bold">
                <th>代号</th>
                <th>车型</th>
                <th>系列</th>
                <th>厂商</th>
                <th>价格</th>
            </tr>
            @{
                foreach (Car data in Model)
                {
                    <tr bgcolor="white">
                        <td>@data.Code</td>
                        <td>@data.Name</td>
                        <td>@data.Brand1.Brand_Name</td>
                        <td>@data.Brand1.Productor.Prod_Name</td>
                        <td>@data.Price</td>
                    </tr>
                }
            }
        </table>
        @*@{
                int nowPageNo = (int)ViewBag.PageNo;
                int nextPageNo = nowPageNo + 1;
                if (nowPageNo == new CarBF().GetPageCount(5))
                {
                    nextPageNo = nowPageNo;
                }
                int prevPageNo = nowPageNo - 1;
                if (nowPageNo == 1)
                {
                    prevPageNo = 1;
                }
            }*@
        @Html.ActionLink("首页", "Index", new { id = 1 })
        @Html.ActionLink("上一页", "Index", "Home", new { id = (int?)ViewBag.PrevPegeNo }, null)
        @Html.ActionLink("下一页", "Index", "Home", new { id = (int)ViewBag.NextPageNo }, null)
        @Html.ActionLink("尾页", "Index", new { id = (int)ViewBag.PageCount })
        <div style="display:inline-block">
            @using (Html.BeginForm("Index", "Home"))
            {
                @:转到:@Html.TextBox("id", null, new { size = 2 })<input type="submit" value="Go" />
             }
        </div>
        一共<font color="red"> @ViewBag.PageCount </font>页,当前是第<font style="color:red"> @ViewBag.PageNo </font>页
        <div style="display:inline-block">
            @using (Html.BeginForm("Index", "Home"))
            {
                @:转到:@Html.DropDownList("id", (SelectList)ViewBag.Pagelist)<input type="submit" value="Go" />
             }
        </div>
    </div>
</body>
</html>

  效果图

时间: 2024-10-13 17:00:36

MVC简单分页的相关文章

asp.net mvc简单分页实例

@{ ViewBag.Title = "Index"; } @{ int pageIndex = (int)ViewBag.CurrentPage; int pageCount = (int)ViewBag.Pages; } <h2>Index</h2> <table> <tr> <th>cateId</th> <th>cateName</th> <th>cateNote<

MVC简单分页(未实现无刷新分页)

分页Html辅助方法 using System.Text; using System.Web: using System.Web.Mvc; namespace System.Web.Mvc { public static class HtmlExtensions { #region 分页Html辅助方法 /// <summary> /// 分页Html辅助方法 /// </summary> /// <param name="htmlHelper">&

ASP.NET MVC 简单分页代码

using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using SportsStore.WebUI.Models; using System.Text; namespace SportsStore.WebUI.HtmlHelpers { /// <summary> /// 分页辅助器 /// </summary> publ

Mvc 简单分页代码

public ActionResult MyComment(string id, int page = 1) { string userid = EndUserLoginManage.Instance.loginUserID; ICommentInfoBLL c_bll = new CommentInfoBLL(); int allcount = 0; int pageindex = (page < 1 ? 1 : page); int pagesize = 10; List<CommentI

MVC中使用MVCPager简单分页

一.建立数据库以及建立MVC项目 自己随便建立一个数据库,并且添加数据.我建立的数据库如下. 二.建立LINQ to SQL映射. 然后一步步点确定 三.编写代码 在Controllers中建立控制器,模板为空.建立的项目如下: 要添加视图Index 在Controller中选中Index 并且添加视图, 模板选中List, 如下 注意后台要添加对MvcPager的程序集引用,后台代码如下: using Webdiyer.WebControls.Mvc; public class Student

在 asp.net mvc中的简单分页算法

//第一步:建立如下分页实体类:namespace MVCPager.Helpers { /// <summary> /// 简单分页算法类 /// </summary> public class Pager { public int RecordCount { get; set; } public int PageIndex { get; set; } public int PageSize { get; set; } public int PageCount { get { r

MVC 简单的AJAX异步分页+MYSQL

留资料,以后学习用 1.后台 public ActionResult textPage() { return View(); } [HttpPost] public ActionResult textPage(FormCollection collection) { //实例化对象 BLL.pc_dialog bll_pcdialog = new BLL.pc_dialog(); Model.pc_dialog model_pcdialog = new Model.pc_dialog(); //

详解ASP.NET MVC数据分页

ASP.NET MVC框架已经进入2.0时代,本文将从ASP.NET MVC数据分页谈起,希望能对大家有所帮助. 在网页上进行表格资料或其他显示资料的分页是一种十分常见的需求,以前我们有 GridView 或 DataPager 可以帮我们自动分页,虽然到了 ASP.NET MVC 一切全部重头来过,但我们也不用真的那麽辛苦的自己实做分页,因为早就有人帮我们写好程式并开放原始码分享给这个世界了. 如果你已经体会到在 ASP.NET MVC 中妥善利用强型别(Strong Typed)特性进行开发

MVC快速分页

.NET手记-ASP.NET MVC快速分页的实现 对于Web应用,展示List是很常见的需求,随之而来的常见的分页组件.jQuery有现成的分页组件,网上也有着大量的第三方分页组件,都能够快速实现分页功能.但是今天我描述的是用基本的C#和html代码实现的分页,不借助任何第三方组件. 实现思路 这里的实现主要借助ViewModel和HtmlHelper实现,通过传递分页参数PagingInfo来实现. 创建分页参数类PagingInfo.cs using System; namespace C