2011-02-14 106 views
3

嗨,will_paginate + jquery ui标签

我正在使用jquery ui模式对话框。在这个对话框中,我有两个jquery ui选项卡,每个选项卡都包含一个带有用will_paginate(rails)分页的项目列表的div。

我有几个问题:?

  • 当我点击分页我的模式是关闭的页面上,但我的网址/网页= 2
  • ,当我重新打开该模式我是上我的第一个标签的第二页,如果我点击第二个标签,我也在第二页上,这是不想要的

Thx为您提供帮助。

回答

2

我假设你的模态对话框正在关闭,因为你正在用新参数刷新页面。下面是使用Ajax和will_paginate的官方说明,所以你不需要刷新页面:
https://github.com/mislav/will_paginate/wiki/Ajax-pagination

您也可以尝试RemoteLinkRenderer解决方案,如果你不关心这些网页的爬行。基本上,创建一个名为remote_link_renderer.rb,并把它帮手:

class RemoteLinkRenderer < WillPaginate::LinkRenderer 
    def prepare(collection, options, template) 
    @remote = options.delete(:remote) || {} 
    super 
    end 

    protected 
    def page_link(page, text, attributes = {}) 
    @template.link_to_remote(text, {:url => url_for(page), :method => :get}.merge(@remote), attributes) 
    end 
end 

然后在您的视图,请确保您的will_paginate调用有以下选项:

<%= will_paginate @items, :renderer => 'RemoteLinkRenderer' , :remote => { :update => 'items_div'} %> 

其中@items是无论你的分页变量和items_div是正在更新的dom元素的标识。

您可以谷歌的will_paginate remotelinkrenderer欲了解更多信息。

至于你的第二次发行,问题是这两个分页使用相同的参数来跟踪他们在哪个页面上。您可以在调用will_paginate时在视图中修复此问题,其中包括一个或两个实例上的:param_name选项,例如, :param_name=>:tab2_page。这里指定:http://rubydoc.info/gems/will_paginate/2.3.15/WillPaginate/ViewHelpers