`
机器人
  • 浏览: 85126 次
  • 性别: Icon_minigender_2
  • 来自: Google
社区版块
存档分类
最新评论

自定义will_paginate分页插件的html显示

阅读更多
will_paginate分页插件有一个WillPaginate::LinkRenderer,这个用来定义分页的html输出,我们可以继承这个,从而达到自定义分页输出。

例如:我现在想去掉分页中显示的“上一页”和“下一页”,我们可以在lib中定义一个子类:
class CustomPaginationRenderer < WillPaginate::LinkRenderer
  def to_html
    links = @options[:page_links] ? windowed_links : []    
    html = links.join(@options[:separator])
    @options[:container] ? @template.content_tag(:div, html, html_attributes) : html
  end  
end


页面上<%= will_paginate @items, :renderer => 'CustomPaginationRenderer' %>


而我正想达到的一需求是在原来分页显示的基础上,加上一些分页信息,如每页显示多少条数据,一共有多少页等:
class PaginationDetailLinkRenderer < WillPaginate::LinkRenderer

  def to_html
    links = @options[:page_links] ? windowed_links : []
    links.unshift page_link_or_span(@collection.previous_page, 'disabled prev_page', @options[:previous_label])
    links.push    page_link_or_span(@collection.next_page,     'disabled next_page', @options[:next_label])
    html = links.join(@options[:separator])
    html = "每页显示<b>#{@collection.per_page}</b>条数据,共有<b>#{total_pages}</b>页,  共有<b>#{@collection.total_entries}</b>条数据" + html
    @options[:container] ? @template.content_tag(:div, html, html_attributes) : html
  end

end

效果:


参考资料:
http://thewebfellas.com/blog/2008/8/3/roll-your-own-pagination-links-with-will_paginate
http://zilkey.com/2008/3/16/rendering-will_paginate-links-without-previous-and-next-buttons
分享到:
评论
4 楼 Hooopo 2009-10-30  
>> @users = User.paginate :per_page => 2, :page => 3
>> @users.per_page
=> 2
>> @users.current_page
=> 3
>> @users.total_pages
=> 23
>> @users.next_page
=> 4
>>


只有数据是好看的...我只看到你写了一坨东东...
3 楼 机器人 2009-10-30  
你难道不觉得我的方法好看一些吗? 
2 楼 Hooopo 2009-10-29  
引用
而我正想达到的一需求是在原来分页显示的基础上,加上一些分页信息,如每页显示多少条数据,一共有多少页等:


没有那么麻烦。。。

你用pagiate查出来的model实例里面都有你要的这些方法,看看我写的把分页信息附加到json的方法:
page_info = {}

    [:total_pages, :current_page, :next_page, :previous_page].each do |info|
      page_info[info] = @places.send(info)
    end

    @places << page_info

    render :json => @places

1 楼 机器人 2009-10-29  

相关推荐

    will_paginate分页插件

    **will_paginate分页插件详解** 在Web开发中,数据分页是一项常见的需求,它可以帮助用户更有效地浏览大量信息,提高用户体验。Rails框架中,`will_paginate`是一个非常流行且强大的分页插件,它简洁易用,功能强大...

    will_paginate 2.2.2

    `will_paginate`是Rails框架中非常流行的一个分页插件,版本2.2.2是它的一个历史版本。在本文中,我们将深入探讨`will_paginate`的使用方法、功能特性以及它如何与Rails集成,帮助提升Web应用的性能和用户体验。 一...

    will_paginate插件下载

    开发者可以根据项目需求和团队偏好选择合适的分页插件。 总结,will_paginate是Rails开发中不可或缺的工具之一,它简化了数据分页的实现,提升了代码的可读性和维护性。通过理解并熟练掌握will_paginate的使用,...

    will_paginate 2.1.0

    7. **自定义渲染**:`will_paginate` 提供了自定义分页链接渲染的功能,你可以根据需求定制分页的HTML结构。 8. **分页参数安全**:`will_paginate` 会验证并处理分页参数,防止恶意用户通过修改URL来访问未授权的...

    will_paginate v2.3.11

    《will_paginate v2.3.11:Rails分页插件详解》 在Web开发中,处理大量的数据是常见的需求,特别是在使用Ruby on Rails框架时。为了优化用户体验,提高页面加载速度,分页功能显得尤为重要。这时,will_paginate...

    rails 2.0.2 分页 需另外下载插件

    为了实现分页,开发者通常需要安装并使用第三方插件,比如"will_paginate"。这个插件允许你在Rails应用中轻松地对数据进行分页显示,提高用户体验并减轻服务器压力。 **1. will_paginate插件介绍** `will_paginate`...

    ruby on rails 常用插件下载

    `will_paginate` 还具有高度可定制性,允许自定义分页链接的样式、每页显示的记录数以及分页组件的行为。 总结来说,`will_paginate` 是 Ruby on Rails 中处理大数据集合的必备工具,它的易用性和灵活性使得在各种...

    WillPaginateExample:Ruby on Rails的Will_Paginate示例

    `Will_Paginate` 是一个非常流行的Ruby on Rails插件,用于处理大型数据集的分页。它提供了简洁、灵活的API,使得在Rails应用中实现数据库查询结果的分页变得简单易行。在本篇文章中,我们将深入探讨`Will_Paginate`...

    Rails实现的简历系统

    Rails提供了一些插件,如`will_paginate`或`kaminari`,它们提供了一种优雅的方式来分页查询结果,提高用户体验。 6. **日历**:为了展示时间相关的简历信息,如工作经验或项目日期,可以使用像`fullcalendar-rails...

    JavaEye3.0开发手记

    will_paginate** - **作用**:为Rails内置的分页功能提供更好的替代方案。 #### 五、文档与帮助资源 **1. fastri** - **功能**:加速 Ruby 文档查询的速度。 - **安装**:通过命令`gem install fastri`安装。 -...

Global site tag (gtag.js) - Google Analytics