MVC 分页查询(汽车表)

id改成1,代表着从第一页开始查询

(一)controlles

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using MvcApplication1.Models;
namespace MvcApplication1.Controllusing
{
    public class PagedCarController : Controller
    {
        private const int PAGESIZE = 3;

        public ActionResult Index(int id)//翻页
        {
            int pageCount =new CarBF().GetPageCount(PAGESIZE);
            ViewBag.PageNo = id;
            ViewBag.PageCount = pageCount;

            List<int> pagelist = new List<int>();
            for (int i = 1; i <= pageCount; i++)
            {
                pagelist.Add(i);
            }
            SelectList selectList = new SelectList(pagelist,id);

            ViewBag.PageList = selectList;

            List<Car> list = new CarBF().Select(PAGESIZE, id);
            return View(list);
        }

    }
}

(二) models

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

namespace MvcApplication1.Models
{
    public class CarBF
    {
        private MyDBDataContext _Context = new MyDBDataContext();
        public List<Car> Select(int pageSize,int pageNo) //pageNo从1开始算的。
        {
            var query = _Context.Car.Skip(pageSize * (pageNo - 1)).Take(pageSize);
            return query.ToList();
        }
        public int GetPageCount(int pageSize)
        {
            int rowsCount = _Context.Car.Count();
            int pageCount = (int)Math.Ceiling( 1.0* rowsCount / pageSize);
            return pageCount;
        }
    }
}

(三 ) view

@using MvcApplication1.Models;
@model List<Car>
@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
    <script language="javascript">
        function dochange() {
            var s = document.getElementById("pageid").value;
            var str = "new {id="+s+"}";
            window.location.href = "/PagedCar/Index/" + s;
        }
    </script>
</head>
<body>
    <div>
        <ul>
            @foreach( Car data in Model ){
            <li>@data.Name</li>
            }
        </ul>
        @{
            int pageCount = (int)ViewBag.PageCount;
            int nowPage = (int)ViewBag.PageNo;
            int prevPage = nowPage - 1;
            int nextPage = nowPage + 1;
            }
        @Html.ActionLink("首页", "Index", "PagedCar", new { id=1},null)
        @Html.ActionLink("上一页", "Index", "PagedCar", new { id = prevPage }, new { onclick = (prevPage <= 0 ? "return false" : "return true") })
        @Html.ActionLink("下一页", "Index", "PagedCar", new { id = nextPage }, new { onclick=(nextPage > pageCount?"return false;":"return true;" )})
        @Html.ActionLink("尾页", "Index", "PagedCar", new { id = pageCount },null)
        转向 @Html.DropDownList("pageid", ViewBag.PageList as SelectList, new { onchange="dochange()"}) 页
    </div>
</body>
</html>

★ 最后一定要添加一个JS 的文件,否则无法正常运行。

效果图:

时间: 2024-12-06 08:55:46

MVC 分页查询(汽车表)的相关文章

MySQL、Oracle和SQL Server的分页查询语句

原文地址:http://www.cnblogs.com/ginponson/p/5746435.html 假设当前是第PageNo页,每页有PageSize条记录,现在分别用Mysql.Oracle和SQL Server分页查询student表. 1.Mysql的分页查询 SELECT * FROM student LIMIT (PageNo - 1) * PageSize,PageSize; 理解:(Limit n,m)  =>从第n行开始取m条记录,n从0开始算. 2.Oracel的分页查询

MySql实现分页查询的SQL,mysql实现分页查询的sql语句 (转)

http://blog.csdn.net/sxdtzhaoxinguo/article/details/51481430 摘要:MySQL数据库实现分页查询的SQL语句写法! 一:分页需求: 客户端通过传递start(页码),limit(每页显示的条数)两个参数去分页查询数据库表中的数据,那我们知道MySql数据库提供了分页的函数limit m,n,但是该函数的用法和我们的需求不一样,所以就需要我们根据实际情况去改写适合我们自己的分页语句,具体的分析如下: 比如: 查询第1条到第10条的数据的s

oracle,mysql,SqlServer三种数据库的分页查询总结

MySql: MySQL数据库实现分页比较简单,提供了 LIMIT函数.一般只需要直接写到sql语句后面就行了. LIMIT子 句可以用来限制由SELECT语句返回过来的数据数量,它有一个或两个参数,如果给出两个参数, 第一个参数指定返回的第一行在所有数据中的位置,从0开始(注意不是1),第二个参数指定最多返回行数.例如: select * from table    LIMIT 10;    #返回前10行 select * from table    LIMIT 0,10; #返回前10行

MySQL、Oracle分页查询

mysql分页 需用到的参数: pageSize 每页显示多少条数据 pageNumber 页数 从客户端传来 totalRecouds 表中的总记录数 select count (*) from 表名 totalPages 总页数 totalPages=totalRecouds%pageSize==0?totalRecouds/pageSize:totalRecouds/pageSize+1 pages 起始位置 pages= pageSize*(pageNumber-1) SQL语句: se

MySQL数据库实现分页查询的SQL语句写法!

一:分页需求: 客户端通过传递start(页码),limit(每页显示的条数)两个参数去分页查询数据库表中的数据,那我们知道MySql数据库提供了分页的函数limit m,n,但是该函数的用法和我们的需求不一样,所以就需要我们根据实际情况去改写适合我们自己的分页语句,具体的分析如下: 比如: 查询第1条到第10条的数据的sql是:select * from table limit 0,10;   ->对应我们的需求就是查询第一页的数据:select * from table limit (1-1

MySql实现分页查询的SQL,mysql实现分页查询的sql语句

一:分页需求: 客户端通过传递start(页码),limit(每页显示的条数)两个参数去分页查询数据库表中的数据,那我们知道MySql数据库提供了分页的函数limit m,n,但是该函数的用法和我们的需求不一样,所以就需要我们根据实际情况去改写适合我们自己的分页语句,具体的分析如下: 比如: 查询第1条到第10条的数据的sql是:select * from table limit 0,10;   ->对应我们的需求就是查询第一页的数据:select * from table limit (1-1

让Asp.net mvc WebAPI 支持OData协议进行分页查询操作

这是我在用Asp.net mvc WebAPI 支持 OData协议 做分页查询服务时的 个人拙笔. 代码已经开发到oschina上.有兴趣的朋友可以看看,欢迎大家指出不足之处. 看过了园子里的几篇关于ASP.NET MVC WebAPI 支持OData协议的文章,很受启发. 但是对于OData协议下对数据的分页查询,确实没有找到让我满意的东西,可能是个人就这脾气.不喜欢复杂. 对于在 WebAPI 支持OData协议,好处不多讲了,反正,我个人是非常乐意用它来做服务接口之类的. 这篇笔记的主题

Java链接HBASE数据库,创建一个表,删除一张表,修改表,输出插入,修改,数据删除,数据获取,显示表信息,过滤查询,分页查询,地理hash

准备工作 1.创建Java的Maven项目 创建好的目录结构如下:  另外注意junit的版本,最好不要太高,最开始笔者使用的junit4.12的,发现运行的时候会报错.最后把Junit的版本改成4.7的之后,问题解决了. 创建测试工具类HbaseDemo,为了保证能够让Hbase运行,需要最开始写出如下配置: package toto.com.hbase; import java.util.ArrayList; import java.util.Iterator; import org.apa

JdbcTemplate+PageImpl实现多表分页查询

一.基础实体 @MappedSuperclass public abstract class AbsIdEntity implements Serializable { private static final long serialVersionUID = 7988377299341530426L; public final static int IS_DELETE_YES = 1;// 标记删除 public final static int IS_DELETE_NO = 0;// 未删除,