ASP.NET的分页方法(三)
第三讲是应用于MVC上面的分页,很多时候MVC要和EF表达式一起使用,但是我这个使用的最原始的ADO.NET,一样实现了这个效果。要实现这个效果首先要得到MvcPager.dll,引用之后,前台操作如下:
@using Webdiyer.WebControls.Mvc;
@model PagedList<MVCTest.Models.Info>
<!DOCTYPE html> <html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Index</title>
</head>
<body>
@foreach (MVCTest.Models.Info info in ViewBag.Content)
{
<span>@info.Title</span><br />
} @Html.Pager(Model,new PagerOptions{PageIndexParameterName = "pageIndex",ShowPageIndexBox = true,PageIndexBoxType = PageIndexBoxType.DropDownList,ShowGoButton = false})
@section Scripts{@{Html.RegisterMvcPagerScriptResource();}}
</body>
</html>
这里前台需要引用Webdiyer.WebControls.Mvc;这个空间,并且要引用一下PagerList这个集合,里面包括着你要显示数据的类。例如PagedList<MVCTest.Models.Info>
后台的写法如下
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using MVCTest.Models;
using System.Data.SqlClient;
using System.Data;
using System.Configuration;
using Webdiyer.WebControls.Mvc;
namespace MVCTest.Controllers
{
public class HomeController : Controller
{
//
// GET: /Home/ int pageSize = ; public ActionResult Index(int pageIndex=)
{ string GetDateSql = "SELECT * FROM [Info]"; string ConStr = ConfigurationManager.ConnectionStrings["Connection"].ToString(); using (SqlConnection conn = new SqlConnection(ConStr))
{
conn.Open();
SqlCommand comm = new SqlCommand(GetDateSql, conn); SqlDataReader reader = comm.ExecuteReader();
List<Info> infoItem = new List<Info>();
while (reader.Read())
{
Info info = new Info();
info.Title = reader["Title"].ToString();
infoItem.Add(info);
}
reader.Close();
PagedList<Info> list = infoItem.ToPagedList(pageIndex, pageSize);
ViewBag.Content = list;
return View(list);
}
}
}
}
对于后台, 也要引用using Webdiyer.WebControls.Mvc;这个类,之后可以把使用SqlDataReader读出的数据,放入一个泛型集合,然后在
PagedList<Info> list = infoItem.ToPagedList(pageIndex, pageSize);这一步的时候转换为pagerlist并且使用return view把pagerlist的内容返回到视图层,这里要注意的是,前台绑定的数据源要和分页所使用的数据源为同一个数据源,为pagerlist的这个数据源
PagedList<Info> list = infoItem.ToPagedList(pageIndex, pageSize);
ViewBag.Content = list;
return View(list);
在控制器里面需传递一个参数,就是当前页索引
pageIndex,这个参数默认为1,它的名字要和前台的
@Html.Pager(Model,new PagerOptions{PageIndexParameterName = "pageIndex",ShowPageIndexBox = true,PageIndexBoxType = PageIndexBoxType.DropDownList,ShowGoButton = false})
这个名字是一样的
ASP.NET的分页方法(三)的更多相关文章
- asp.net数据分页方法
/// <summary> /// 数据分页方法 /// </summary> /// <param name="PageIndex">当前页& ...
- ASP.NET的分页方法(一)
要做一个关于分页写法的专题,这是今天的第一讲,自制分页,可能有些代码需要优化,希望大家给出一些中肯的建议 前台使用的repeater绑定的数据: <form id="form1&quo ...
- ASP.NET的分页方法(二)
第二讲主要使用到了常用的分页控件aspnetpager,这里对他就行一个简单的应用,具体大家可以到杨涛的博客上去寻找相关的DLL, 首先要先引用AspNetPager.dll,然后把这个DLL同时添加 ...
- ASP.NET的分页方法(四)
这是我早先得到的一段JS代码,只需要修改一下开头的几个参数,就可以使用,不知道能否试用于静态页面呢,大家可以尝试一下 <script language="javascript" ...
- Oracle数据库分页的三种方法
-- 不能对ROWNUM使用>(大于1的数值).>=(大于或等于1的数值).=(大于或等于1的数值),否则无结果-- 所以直接用只能从1开始-- rownum >10 没有记录,因为 ...
- Asp.Net保存session的三种方法 (Dll文件更新导致session丢失的解决办法)
1. InProc模式(默认值):asp.net将session保存到当前进程中,这种方式最快,但是不能多台服务器共享session,且会话状态数据容易丢失. <sessionState mod ...
- SQL SERVER 2008 中三种分页方法与总结
建立表: CREATE TABLE [TestTable] ( , ) NOT NULL , ) COLLATE Chinese_PRC_CI_AS NULL , ) COLLATE Chinese_ ...
- MVC三种分页方法
View部分: @using WebApplication1.Models;分页方法1引包 @*@using PagedList.Mvc; @using WebApplication1.Models; ...
- ASP.NET MVC分页实现之改进版-增加同一个视图可设置多个分页
我之前就已经实现了ASP.NET MVC分页(查看该博文),但它有局限性,必须确保在同一个视图中只能有一处分页,若需要在同一个视图中设置多个分页,却无能为力,为此,我重新对原先的代码进行了优化,增加了 ...
随机推荐
- MVC项目中应用富文本编辑器UEditor中的几个坑
UEditor:百度出品 官网连接:http://ueditor.baidu.com/website/ 错误现象:在官网上复制到本地后,上传图片功能不能用, 控制台提示:“请求后台配置项http错误, ...
- [转]使用 jQuery Mobile 与 HTML5 开发 Web App —— jQuery Mobile 事件详解
在前文<使用 jQuery Mobile 与 HTML5 开发 Web App —— jQuery Mobile 默认配置与事件基础>中,Kayo 对 jQuery Mobile 事件的基 ...
- KM算法(二分图的最佳完美匹配)
KM算法大概过程: (1)初始化Lx数组为该boy的一条权值最大的出边.初始化Ly数组为 0. (2)对于每个boy,用DFS为其找到一个girl对象,顺路记录下S和T集,并更新每个girl的slac ...
- 【Java】从域名得到ip
package sdfg; import java.net.InetAddress; //import java.net.UnknownHostException; import java.io.*; ...
- Linux Shell编程(5):整数运算
http://blog.sina.com.cn/s/blog_6db275da0101asmf.html #!/bin/sh let a=$1+$2 b=$[$1+$2] ((c=$1+$2)) d= ...
- *ecshop 首页促销价显示倒计时
1.打开includes/lib_goods.php 找到 get_promote_goods()函数部 在(注意:位置别找错了,大概在394行位置) $goods[$idx]['url'] = bu ...
- 如何在vmware上创建共享磁盘
1.先在你本机的vmware安装目录上找到 vmware-vdiskmanager.exe 执行文件. 我的目录是 d:\vmware\vmware-vdiskmanager.exe 再用cmd终端( ...
- Android数据库一些源码分析
对于批量数据插入这种最常见的情况来说,我们来看两种实现方式(两种都用了事务). 下面这种应该是最多人使用的插入数据的方法: public long addByExec(List<Person&g ...
- myeclipse9 struts2配置
引用struts2所用到的jar web.xml配置如下 <?xml version="1.0" encoding="UTF-8"?> <we ...
- hdu 3478(判断奇环)
题意:给你一个无向图,问你有没有可能存在一个奇环连接所有的节点. 分析:好久没写博客了,这个好习惯还是要继续保持的!这道题通过转化之后就是问你有没有存在一个奇环连接所有的节点,这里用到的方法是染色法, ...