自定义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


页面上[b]<%= will_paginate @items, :renderer => 'CustomPaginationRenderer' %>[/b]


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

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

效果:
[img]http://bot.iteye.com/upload/picture/pic/48061/02369ce8-0f13-3540-bc76-82d59255f49d.jpg[/img]

参考资料:
[url]http://thewebfellas.com/blog/2008/8/3/roll-your-own-pagination-links-with-will_paginate[/url]
[url]http://zilkey.com/2008/3/16/rendering-will_paginate-links-without-previous-and-next-buttons[/url]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值