当前位置:首页 > 开发 > 编程语言 > 编程 > 正文

分页插件之--will_paginage

发表于: 2015-06-26   作者:喵喵   来源:转载   浏览:
摘要: 正常分页: 在rails3中,用will_paginage有两种方式,第一种就是用plugin形式,安装方法: 这里有个wiki关于安装的说明,https://github.com/mislav/will_paginate/wiki/installation,这里我只是想说一下关于这个插件的配置参数。首先,如果你是用插件安装的,那么找到vendor/plugins/will_paginat
正常分页:
在rails3中,用will_paginage有两种方式,第一种就是用plugin形式,安装方法:
这里有个wiki关于安装的说明,https://github.com/mislav/will_paginate/wiki/installation,这里我只是想说一下关于这个插件的配置参数。首先,如果你是用插件安装的,那么找到vendor/plugins/will_paginate/lib/will_paginate/view_helpers.rb,这个helper就是这个插件的关于现实的helper,
 
@@pagination_options  =  {  : class   =>   ' pagination ' , 
         : prev_label    =>   ' 上一页 ' ,   #这个一般是用在我们中文网站上的时候需要进行改动,默认是 << Previous
         : next_label    =>   ' 下一页 ' ,   #这个一般是用在我们中文网站上的时候需要进行改动,默认是 Next >>
         : inner_window  =>   4 ,   # inner_window  控制显示当前页临近的多少个链接 ,默认是4
         : outer_window  =>   1 , # outer_window 控制显示首/末页临近的多少个链接,默认是1
        :page_links => false, # 如果是false的时候,只显示上一页和下一页 (默认是 true)
         : separator     =>   '   ' ,   # 这个参数是用来设置页码之间 的分隔符的,用空格或者(|)或者其他的都可以 
         : param_name    =>   : page ,   #这个参数是用来我们点击页码连接的时候传递的参数的名称,一般不用改动
        :class           =>  'pagination' ,  #这个是用来给分页的元素家heml的类名的,可以通过这个类名进行样式布局。 
        }
 
 
以上说的是你以插件的形式安装的,如果你用的而是rubygems形式安装的,那么这个配置你就需要到配置文件里面去改了,如果你的项目时2.x的,那么你的配置文件的改动应该是在config/environment.rb里面,加上类似于这样的几句,来进行相关的默认修改:
1. WillPaginate::ViewHelpers.pagination_options[ :class ] =  "yourclass"   
2. WillPaginate::ViewHelpers.pagination_options[:previous_label ] =  "前一页"   
3. WillPaginate::ViewHelpers.pagination_options[:next_label ] =  "后一页"   
       如果你的项目时3.0以上的版本的话,那么你的这个配置修改就要到 config/initalizer下新建一个文件(例如:will_paginate.rb),在这个文件里面加上类似于上面的三句的配置,来进行修改。
用法:
1、 在config文件中配置 gem ‘will_paginate’
2、 (控制器)在要用到的分页功能的查询语句后面添加
:.paginate(:page => params[:page], :per_page => 3):page是页面接收的参数,:per_page是页面要显示记录数;
 
3、页面在要显示的地方加上一句:<%= will_paginate @comments %>
 
下面是例子:

AJAX分页:
1、在application_heler.rb文件中添加:
    
def will_paginate_remote(paginator, options={})
    function = options.delete(:after)
    update = options.delete(:update)
    url = options.delete(:url)
    str = will_paginate(paginator, options)
=begin
    if str != nil
      str = str.gsub(/href="(.*?)"/) do
        "href=\"#\" onclick=\"jQuery.ajax('#{(url ? url + $1.sub(/[^\?]*/, '') : $1)}',{
          method: 'get',
          dataType: 'html',
          success: function(data){
              alert('---------');
              $('##{update}').html(data);

          }
        })\""
      end.html_safe
    end
=end
    str.scan(/href="(.*?)"/).flatten.uniq.each do |a|
      test_url = url ? url + a.sub(/[^\?]*/, '') : a
      str.gsub!("href=\"#{a}\"") do
        "href=\"#\" onclick=\"jQuery.ajax('#{test_url}',{
          method: 'get',
          dataType: 'html',
          success: function(data){
              $('##{update}').html(data);
          }
        })\""
      end
    end
    str.html_safe
  end

 

2、页面写法

 
<%= will_paginate_remote(@purchases, :update=>'admin_purchase_list', :params => params)%>
 

分页插件之--will_paginage

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
今天推荐一个分页工具条插件:Smart Paginator,这个插件用途还是很广的,而且可定制性相当不错,目
今天推荐一个分页工具条插件:Smart Paginator,这个插件用途还是很广的,而且可定制性相当不错,目
http://www.skygq.com/2011/01/24/jquery%E6%8F%92%E4%BB%B6%E5%90%88%E9%9B%86%E4%B9%8B%E5%88%86%E
http://www.skygq.com/2011/01/24/jquery%E6%8F%92%E4%BB%B6%E5%90%88%E9%9B%86%E4%B9%8B%E5%88%86%E
先看效果:我弄的是一页1条数据 下面直接上代码: <!doctype html> <html lang="en"> &
Jquery分页插件 背景   找到一款自认为不错的分页组件,《js版的QuickPager分页控件 V2.0》,想下
使用方法: (1)下载jquery.js,现在最新版本为1.3 (2)新建js,我的为page.js,放入以下代码。 j
1)JQuery Pager Plugin页面分页对程序员来说最熟悉不过,在Web开发中经常需要对页面进行分页。使用
Bootstrap Paginator分页插件使用示例 最近做的asp.netMVC项目中需要对数据列表进行分类,这个本来
最近做了个项目,有用到分页, 这类插件应该是很常用的, 虽然网上很多现成的分页插件, 但是还是想着自
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号