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分页(查看该博文),但它有局限性,必须确保在同一个视图中只能有一处分页,若需要在同一个视图中设置多个分页,却无能为力,为此,我重新对原先的代码进行了优化,增加了 ...
随机推荐
- 51nod1537 分解
http://blog.csdn.net/qingshui23/article/details/52350523 详细题解%%%%对矩阵乘法的不熟悉.以及不会推公式 #include<cstdi ...
- C#发送手机验证码
C#发送手机验证码,平台有很多,我就说说其中的1个平台 测试环境:.net2.0 测试效果:速度还可以,10秒内接收短信 1.去http://www.yuntongxun.com注册,会送8元测试金额 ...
- xxx_cast类型转换
xxx_cast是一个统称,它指的是static_cast(静态转换),const_cast(常量转换),reinterpert_cast(重解释转换),dynamic_cast(动态转换).本次我们 ...
- 12月2日,上海Cloud Foundry Summit, Azure Cloud Foundry 团队期待和你见面!
12月2日,上海Cloud Foundry Summit, Azure Cloud Foundry 团队期待和你见面! 12日2日对中国Cloud Foundry的用户和开源社区来说,是极有意义的一天 ...
- ecshop 设置管理员
<?php define('IN_ECS', true); require(dirname(__FILE__) . '/includes/init.php'); $admin_name=trim ...
- An unexpected exception occurred while creating a change object. see the error log for more details
今天再给Android项目工程中的包重命名时出现了这个错误(之前重命名的时候就没有出现,郁闷): An unexpected exception occurred while creating a c ...
- shell脚本中一些特殊符号
在shell中常用的特殊符号罗列如下: # ; ;; . , / \\ 'string'| ! $ ${} $? $$ $* \"string\"* ** ...
- Codeforces Round #214 (Div. 2) c题(dp)
C. Dima and Salad time limit per test 1 second memory limit per test 256 megabytes input standard in ...
- T-SQL:SQL Server-数据开发(经典)
ylbtech-SQL Server-Doc-Help:SQL Server-数据开发(经典) SQL Server 数据开发(经典). 1,数据开发(经典) 返回顶部 1.按姓氏笔画排序: Sele ...
- web-3g-(163)网易-邮箱-记事本-数据库设计
ylbtech-DatabaseDesgin:ylbtech-cnblogs(博客园)-数据库设计-2,Admin(用户后台) DatabaseName:cnblogs(博客园) Model:Admi ...