如何根据条件突出显示列表中的行

时间:2010-10-25 14:49:54

标签: ruby-on-rails highlighting activescaffold

版本2.3.4

比方说,我有一个items表,其中包含一些字段,例如:id, name, something, created_at, updated_at, is_dirty。我正在使用活动脚手架来显示HTML表格。

class ItemsController < ApplicationController
  layout 'application'
  active_scaffold :item do |c|
    c.columns = [ :id, :name, :something ]
    c.show.columns.add [ :is_dirty, :created_at, :updated_at]
    c.list.per_page = 20
    list.sorting = {:created_at => 'DESC'}
  end
  # ...
end

我有一个由其他控制器驱动的导入功能。导入后,受影响的行“is_dirty字段将变为true,其他is_dirty值保持不变。

在我想要突出显示某些行的项目列表中,使用is_dirty字段为true的一些刺激性颜色(例如黄色或粉红色)。我在整个网络上搜索,我发现只有字段覆盖。我对基于RJS的解决方案不感兴趣,因为与要完成的任务相比,这是一个荒谬的开销。

任何提示都是受欢迎和赞赏的,但我更喜欢那些不是基于复制和修改框架文件的解决方案的答案(但我仍然对它们感兴趣)。例如,具有良好的覆盖名称/配置项将是非常好的。

1 个答案:

答案 0 :(得分:2)

可以在引发事件时向行中添加css类吗?这个导入是通过AJAX调用运行还是在加载DOM之前完成?如果它在加载DOM之前运行,我个人会在一些包含的js文件中添加一些jQuery:

$(document).ready(function() { 
    $('tr').filter(function() { 
        return $(this).attr('is_dirty'); 
    }).addClass('ugly_yellow'); 
}); 

如果导入通过AJAX调用运行,则可以向处理程序添加类似的代码。

如果你不使用jQuery,我相信你可以在Prototype中做类似的事情,但我更喜欢jQuery,并建议每个人至少尝试一下:)