2011-02-14 89 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