MonoRail学习笔记十四:分页功能的使用
来源:互联网 发布:中国碳交易 数据 编辑:程序博客网 时间:2024/04/30 12:54
在Asp.net开发中的GridView功能比较强大,可以方便的进行分页等操作。
在MonoRail中也提供了方便的分页功能,只要使用PaginationHelper就可以了。当然,你如果是在数据库端进行分页的话就不是这篇笔记考虑的范围了。
Controller代码:
Model
public class User
{
private int id;
private string name, email, password, confirmation;
public User()
{
}
public User(string name, string email)
{
this.name = name;
this.email = email;
}
public int Id
{
get { return id; }
set { id = value; }
}
[ValidateNonEmpty("不能为空", FriendlyName="姓名")]
public string Name
{
get { return name; }
set { name = value; }
}
[ValidateNonEmpty, ValidateEmail]
public string Email
{
get { return email; }
set { email = value; }
}
[ValidateNonEmpty]
public string Password
{
get { return password; }
set { password = value; }
}
[ValidateSameAs("Password")]
public string Confirmation
{
get { return confirmation; }
set { confirmation = value; }
}
}
public class User
{
private int id;
private string name, email, password, confirmation;
public User()
{
}
public User(string name, string email)
{
this.name = name;
this.email = email;
}
public int Id
{
get { return id; }
set { id = value; }
}
[ValidateNonEmpty("不能为空", FriendlyName="姓名")]
public string Name
{
get { return name; }
set { name = value; }
}
[ValidateNonEmpty, ValidateEmail]
public string Email
{
get { return email; }
set { email = value; }
}
[ValidateNonEmpty]
public string Password
{
get { return password; }
set { password = value; }
}
[ValidateSameAs("Password")]
public string Confirmation
{
get { return confirmation; }
set { confirmation = value; }
}
}
public void List()
{
IList list = new ArrayList();
for (int i = 1; i < 36; i++)
{
User user = new User();
user.Id = i;
user.Name = "永春_" + i;
user.Email = "GSpring_" + i + "@hotmail.com";
list.Add(user);
}
PropertyBag.Add("list1", PaginationHelper.CreatePagination(this, list, 10));
}
{
IList list = new ArrayList();
for (int i = 1; i < 36; i++)
{
User user = new User();
user.Id = i;
user.Name = "永春_" + i;
user.Email = "GSpring_" + i + "@hotmail.com";
list.Add(user);
}
PropertyBag.Add("list1", PaginationHelper.CreatePagination(this, list, 10));
}
vm中代码:
#foreach($item in $list1)
#beforeall
<table>
<tr>
<th>ID</th>
<th>姓名</th>
<th>邮件地址</th>
</tr>
#before
<tr
#odd
Style='color:gray'>
#even
Style='color:red'>
#each
<td>$item.Id</td>
<td>$item.Name</td>
<td>$item.Email</td>
#after
</tr>
#afterall
</table>
#nodata
没有数据
#end
<p>
当前显示 $list1.FirstItem - $list1.LastItem 条 共 $list1.TotalItems 条
</p>
<p>
#if ($list1.HasFirst)
$PaginationHelper.CreatePageLink( 1, "第一页" )
#end
#if ($list1.HasPrevious)
$PaginationHelper.CreatePageLink( $list1.PreviousIndex, "前一页" )
#end
#if ($list1.HasNext)
$PaginationHelper.CreatePageLink( $list1.NextIndex, "后一页" )
#end
#if ($list1.HasLast)
$PaginationHelper.CreatePageLink( $list1.LastIndex, "末页" )
#end
<p>
#foreach ( $item in [1..$list1.LastIndex] )
$PaginationHelper.CreatePageLink( $item, $item.toString() )
#end
#beforeall
<table>
<tr>
<th>ID</th>
<th>姓名</th>
<th>邮件地址</th>
</tr>
#before
<tr
#odd
Style='color:gray'>
#even
Style='color:red'>
#each
<td>$item.Id</td>
<td>$item.Name</td>
<td>$item.Email</td>
#after
</tr>
#afterall
</table>
#nodata
没有数据
#end
<p>
当前显示 $list1.FirstItem - $list1.LastItem 条 共 $list1.TotalItems 条
</p>
<p>
#if ($list1.HasFirst)
$PaginationHelper.CreatePageLink( 1, "第一页" )
#end
#if ($list1.HasPrevious)
$PaginationHelper.CreatePageLink( $list1.PreviousIndex, "前一页" )
#end
#if ($list1.HasNext)
$PaginationHelper.CreatePageLink( $list1.NextIndex, "后一页" )
#end
#if ($list1.HasLast)
$PaginationHelper.CreatePageLink( $list1.LastIndex, "末页" )
#end
<p>
#foreach ( $item in [1..$list1.LastIndex] )
$PaginationHelper.CreatePageLink( $item, $item.toString() )
#end
所有的分页相关功能几乎都在PaginationHelper中实现了,我们只要调用就可以了。
最后的效果如下:
- MonoRail学习笔记十四:分页功能的使用
- MonoRail学习笔记十四:分页功能的使用
- MonoRail学习笔记六:Filter功能使用
- MonoRail学习笔记六:Filter功能使用
- MonoRail学习笔记九:Rescue的使用
- MonoRail学习笔记十七:TransformFilter的使用
- MonoRail学习笔记九:Rescue的使用
- MonoRail学习笔记十七:TransformFilter的使用
- MonoRail学习笔记三:使用方便功能强大的routing功能
- MonoRail学习笔记十三:NVelocity的增强功能
- MonoRail学习笔记三:使用方便功能强大的routing功能
- MonoRail学习笔记十三:NVelocity的增强功能
- MonoRail学习笔记三:使用方便功能强大的routing功能
- MonoRail学习笔记十六:AJax在MonoRail中的使用
- MonoRail学习笔记十六:AJax在MonoRail中的使用
- MonoRail学习笔记八:页面缓存的使用
- MonoRail学习笔记十二:layout布局的使用
- MonoRail学习笔记十九:可重复使用组件ViewComponents的使用
- SQL SERVER 2005安装时不能获得aspnet账户的解决方法
- Java编程那些事儿92——IO使用注意问题
- MonoRail学习笔记十三:NVelocity的增强功能
- implements Serializable有什么作用
- MYSQL 字符集问题
- MonoRail学习笔记十四:分页功能的使用
- 亚马逊收购iPhone电子书开发商
- POJ 2325 Persistent Numbers
- MonoRail学习笔记十五:文件上传
- MonoRail学习笔记十六:AJax在MonoRail中的使用
- XML和HTML常用转义字符
- Symbian开发——编辑框(CEikEdwin)
- 囧!揭露上海联通可刷公交卡手机!!!
- MonoRail学习笔记十七:TransformFilter的使用