我正在使用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;
}
有什么建议吗?
谢谢:)
答案 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)');
不是这方面的专家,但我知道这是它在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");
},
如果有人知道如何在服务器端执行此操作,我会很高兴,如果你分享它;)
谢谢!