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