jquery - will_paginate + jquery ui 选项卡

标签 jquery ruby-on-rails user-interface jquery-plugins

嗨,

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

我有几个问题:

  • 当我点击分页页面时,我的模式关闭,但我有 url/?page=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

然后在您的 View 中,确保您的 will_paginate 调用具有以下选项:

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

其中@items是你的分页变量,items_div是正在更新的dom元素的id。

您可以在 google 上搜索 will_paginate remotelinkrenderer 了解更多信息。

至于你的第二个问题,问题是两个分页都使用相同的参数来跟踪它们所在的页面。您可以通过在调用 will_paginate 时的 View 中,在一个或两个实例上包含 :param_name 选项来修复此问题,例如 :param_name=>:tab2_page。此处指定:http://rubydoc.info/gems/will_paginate/2.3.15/WillPaginate/ViewHelpers

关于jquery - will_paginate + jquery ui 选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4993984/

相关文章:

c# - 为什么这个额外的 "?_=1579068576376"被添加到我的 API 请求的 URL '/api/customers' 中

javascript - 使用 jquery 向下滚动后表未固定在顶部

jquery - 数据表行按钮单击

ruby-on-rails - Ruby if 条件在 javascript 文件中无法正常工作

ruby-on-rails - 使用 xcode 4.3.2 安装 rvm 1.9.3 时遇到困难

iphone - 为 iPhone 和 Android 开发 1 个移动应用程序时的 UI 设计

javascript - jQuery 原型(prototype)中的 Object(0) 是什么?

ruby-on-rails - rails瘦服务器无法启动-证书太小

java - 如何在 GUI 中反射(reflect)长时间运行的工作流程?

android - onActivityResult 返回后没有得到正确的结果,因为调用它的 Activity 被重新创建了吗?