MonoRail学习笔记十四:分页功能的使用

简介:
在Asp.net开发中的GridView功能比较强大,可以方便的进行分页等操作。
在MonoRail中也提供了方便的分页功能,只要使用 PaginationHelper 就可以了。当然,你如果是在数据库端进行分页的话就不是这篇笔记考虑的范围了。

Controller代码:
Model
         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));
        }

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


所有的分页相关功能几乎都在PaginationHelper中实现了,我们只要调用就可以了。
最后的效果如下:

提供了两种方式的分页,按页码和按前后页的方式,当然也可以定制自己需要的分页方式,代码很简单。




    本文转自永春博客园博客,原文链接:http://www.cnblogs.com/firstyi/archive/2007/11/02/946988.html,如需转载请自行联系原作者


相关文章
|
Linux PHP Shell
自建centos5/6/7 64位yum源(官网rsync同步)
自建centos yum源,5、6、7 64位yum源,官网rsync同步
6147 0
|
Kubernetes API 调度
容器编排工具有哪些
容器编排工具有哪些
|
小程序 JavaScript 前端开发
培训报名小程序-用户注册
培训报名小程序-用户注册
|
存储 监控 调度
Django中的定时任务与后台任务队列的实践
【6月更文挑战第10天】在Django中实现定时任务和后台任务队列,可以使用Celery+Beat进行定时任务,Django Q处理后台任务。Celery配置包括设置Broker和Result Backend,创建Celery实例及任务。Django Q则涉及安装、配置ORM和创建任务。通过`async_task`将任务放入队列。注意性能、资源、安全和错误处理。使用时需考虑认证、输入验证、日志监控、部署策略和测试质量保障。
Django中的定时任务与后台任务队列的实践
|
11月前
|
消息中间件 存储 缓存
大数据-71 Kafka 高级特性 物理存储 磁盘存储特性 如零拷贝、页缓存、mmp、sendfile
大数据-71 Kafka 高级特性 物理存储 磁盘存储特性 如零拷贝、页缓存、mmp、sendfile
199 3
|
11月前
|
机器学习/深度学习 存储 数据挖掘
探索Python编程之美:从基础到进阶的旅程
【10月更文挑战第2天】本文旨在通过浅显易懂的方式,带领读者走进Python编程的世界。我们将从Python的基础语法开始,逐步深入到面向对象编程、异常处理等高级主题,最后探讨如何将Python应用于实际项目中。无论你是编程新手还是有一定基础的开发者,这篇文章都将为你提供有价值的见解和实用的技巧。
|
存储 前端开发 JavaScript
太爽了!这12个前端库,帮我在工作中赢得了不少摸鱼时间!!
太爽了!这12个前端库,帮我在工作中赢得了不少摸鱼时间!!
|
前端开发 安全 Java
实现Spring Boot中的文件分片上传通常涉及到以下几个步骤和考虑的关键点
实现Spring Boot中的文件分片上传通常涉及到以下几个步骤和考虑的关键点
616 2
|
前端开发 UED 开发者
探索前端开发中的CSS布局技巧
本文将介绍一些在前端开发中常用的CSS布局技巧,包括盒模型、浮动布局、弹性布局和栅格系统等。通过学习这些技巧,开发者可以更加灵活地控制页面的布局,提升用户体验和界面的美观性。
|
存储 自然语言处理 固态存储
初次使用 Elasticsearch 遇多种分词难题?那是你没掌握这些原理
命名有包含搜索关键词的文档,但结果却没有?存进去的文档被分成哪些词(term)了?自定义分词规则,但感觉好麻烦呢,无从下手?
5857 0
初次使用 Elasticsearch 遇多种分词难题?那是你没掌握这些原理