Jquery 表格工具 — 2dc_jqgrid————–
Posted by wosmvp on May 24th, 2009 filed in Plugin, Rails应用, web前端技术, 敏捷开发, 测试方法它整合了 InPlaceEdit,分页,搜索,添加,删除等功能,甚至还可以处理附属关系的表格
功能不可谓不强大,但代码却是来的简单的很!
————————–
- Ajax enabled - Sorting - Pagination - Search - CRUD operations (add, edit, delete) - Multi-selection (checkboxes) - Master-details - Themes - And more ... --------------
The jQuery grid plugin is an amazing Javascript project providing multi-functions Ajax datagrids for your web applications.简而言之,居家旅行杀人放火逃命跳墙之必备良品!
在官方文档面前,任何其它文档都是失色的 http://www.2dconcept.com/jquery-grid-rails-plugin
在这里就不无聊的敷述一下过程了
简单的谈几其它个问题:
1,它的例子代码太“重量级”:
针对它第一个例子方法的优化:
原方法:
users = User.find(:all) do if params[:_search] == "true" pseudo =~ "%#{params[:pseudo]}%" if params[:pseudo].present? firstname =~ "%#{params[:firstname]}%" if params[:firstname].present? lastname =~ "%#{params[:lastname]}%" if params[:lastname].present? email =~ "%#{params[:email]}%" if params[:email].present? role =~ "%#{params[:role]}%" if params[:role].present? end paginate :page => params[:page], :per_page => params[:rows] order_by "#{params[:sidx]} #{params[:sord]}" end
修改后:
users = User.find(:all) do |x| if params[:_search] == "true" [:pseudo,:firstname,:lastname,:email,:role].map do |m| x.send(m) =~ "%#{params[m]}" if params[m].presend? end end paginate :page => params[:page], :per_page => params[:rows] order_by "#{params[:sidx]} #{params[:sord]}" end
2, 第二个问题就是如果你上面的order_by排序排字字段使用了SQL的关键字会出现问题的!
上解决方案:
order_by “`#{params[:sidx]}` #{params[:sord]}” if
!params[:sidx].blank?
3,上我自己做的中文翻译
点击下载
你需要修改javascripts/jqgrid/jquery.jqGrid.js第10行附近来使用此中文翻译
并且我还修改了源码 vendor/plugins/2dc_jqgrid/lib/2dc_jqgrid.rb第233行,将其中的caption “Search” 修改为“搜索”
(PS:我知道偷偷修改源码,这是很不好的的做法,那怕是字符串的修改,但实在没有找到更优雅一点的办法,有时间再深入它的源码看看吧
No related posts.
Leave a Comment