点燃数据表,如何使用回调函数?

时间:2014-02-25 19:38:48

标签: codeigniter datatables

我正在使用Ignited datatables(用于codeigniter),而我正在使用服务器端。 我想根据它们的值显示一些RED或GREEN值。

这就是我在edit_column中调用函数的方法:

->edit_column('releve_statut', '$1', $this->label_this('releve_statut'))

这就是我正在呼唤的功能:

public function label_this($str) {

    if($str == "Réalisé"){
        $r =  label_badge('success', 'Réalisé'); 
    } else if ($str == "En cours"){
       $r = label_badge('warning', 'En cours'); 
    }

    return $r;

}

有什么建议吗?

谢谢:)

3 个答案:

答案 0 :(得分:1)

如果你想在服务器端使用回调,一个简单而轻松的解决方案就是创建一个Codeigniter Helper类。

因此,在您的代码中,更改edit_column的第三个参数:

->edit_column('releve_statut', '$1', 'label_this(releve_statut)')

最后,在辅助类中定义函数label_this($str)。在调用$this->datatables->generate()之前不要忘记加载它。

答案 1 :(得分:0)

->edit_column('releve_statut', '$1', 'callback_label_this(releve_statut)');

Source

不是这方面的专家,但我知道这是它在codeigniter中的其他地方所做的,所以虽然我无法测试,但这应该有效

原创(仍然是相关的) 你需要做的是有一个CSS样式表

.bg-success{
    color: green;
}
.bg-warning{
    color: red;
}

这会将文本设置为彩色 如果你想要一个彩色背景,那么用背景颜色替换颜色。

答案 2 :(得分:0)

服务器端的回调函数对我不起作用:/

我所做的解决方案是将 fnDrawCallback 添加到数据表初始化(客户端),这是在每个'draw'事件上调用的。

"fnDrawCallback": function( oSettings ) {
                        var $green = $('.statut-style').filter(function() {
                                    return  ($(this).text() == 'Réalisé');
                                });
                        // Set the green elements to color green
                        $green.addClass("badge bg-success");
      },

如果有人知道如何在服务器端执行此操作,我会很高兴,如果你分享它;)

谢谢!