实例:Ajax分页
1.首先扩展will_paginate插件,因为插件默认是不支持的,在插件中找到view_helpers.rb源文件。
添加代码:
ok,大功告成,这样一个Ajax分页就做完了,是不是非常快呐。这也正是其魅力所在。想想用jquery+java去实现
1.首先扩展will_paginate插件,因为插件默认是不支持的,在插件中找到view_helpers.rb源文件。
添加代码:
def
will_paginate_remote(paginator, options
=
{})
update = options.delete(:update)
url = options.delete(:url)
str = will_paginate(paginator, options)
if str != nil
str.gsub( / href = " (.*?) " / ) do
" href=\ " # \" onclick=\"new Ajax.Updater('" + update + "', '" + (url ? url + $1.sub(/[^\?]*/, '') : $1) +
" ', {asynchronous:true, evalScripts:true, method:'get'}); return false;\ ""
end
end
end
2.在需使用无刷新分页的页面里加入:
update = options.delete(:update)
url = options.delete(:url)
str = will_paginate(paginator, options)
if str != nil
str.gsub( / href = " (.*?) " / ) do
" href=\ " # \" onclick=\"new Ajax.Updater('" + update + "', '" + (url ? url + $1.sub(/[^\?]*/, '') : $1) +
" ', {asynchronous:true, evalScripts:true, method:'get'}); return false;\ ""
end
end
end
<%
=
javascript_include_tag :defaults
%>
3.修改本页的分页方法,改为:
<%
=
will_paginate_remote (@blogs,:update
=>
'
blogs',:url=>nil,:prev_label=>'上一页',:next_label=>'下一页',:separator=>" | ")%>
ok,大功告成,这样一个Ajax分页就做完了,是不是非常快呐。这也正是其魅力所在。想想用jquery+java去实现
这个功能肯定花费的时间会很多。但是这么着就做完了,的确快的让人受不了。比拖.net控件还爽。
本文转自施杨博客园博客,原文链接:http://www.cnblogs.com/shiyangxt/archive/2009/07/31/1536183.html,如需转载请自行联系原作者