Datatables 使用jquery dataTable的dc.js dataTable条件格式
我有一个使用dc.js构建的仪表板,我使用的是图表类型dc.rowChart和dc.dataTables。Datatables 使用jquery dataTable的dc.js dataTable条件格式,datatables,dc.js,crossfilter,Datatables,Dc.js,Crossfilter,我有一个使用dc.js构建的仪表板,我使用的是图表类型dc.rowChart和dc.dataTables。 不带条件格式的工作场景: dc.rowChart-显示前50名客户 dc.dataTable-显示所有必需字段,并根据行图筛选数据 使用条件格式的工作场景(在数据表行上) 在我的HTML中,我正在调用DataTable的jquery插件(用于条件格式),下面是代码: 此处发布 当我第一次呈现页面时,带有条件格式的datatable的所有内容都可以正常工作 但当我点击行图表根据客户的数据
不带条件格式的工作场景:
dc.rowChart-显示前50名客户
dc.dataTable-显示所有必需字段,并根据行图筛选数据
使用条件格式的工作场景(在数据表行上)
在我的HTML中,我正在调用DataTable的jquery插件(用于条件格式),下面是代码:
此处发布 当我第一次呈现页面时,带有条件格式的datatable的所有内容都可以正常工作
但当我点击行图表根据客户的数据过滤数据表时,条件格式就消失了
非常感谢您的帮助来解决此问题
我已经尝试了几乎所有的堆栈答案,但我无法实现它
下面使用的参考资料:
1.
2.
3. 4.(由于我不想对整行进行颜色编码,因此选择了此选项)
@戈登永远是我的幸存者。。寻找您的输入,请 我看到您仍然使用dc.js 2.0,所以我没有尝试将其移植到或。我仍然认为这样更容易维护 正如我在评论中所指出的,
$.DataTable
是一种单向转换:一旦您完成了转换,就无法更新表,因为dc.DataTable
不再识别DOM结构和DataTable
可能有一些聪明的方法可以让DataTables更新数据(这就是库所做的)。首先构建一个表,然后使用DOM作为数据源构建一个DataTable,这也是非常低效的
但是不管怎样,我们只要在每次绘制dc.DataTable
时从头开始构建DataTable就可以了
执行此操作的方法是侦听表的pretransition
事件,记住是否已初始化DataTable,如果已初始化,则销毁旧实例:
var dt = null;
table.on('pretransition', function() {
if(dt)
dt.destroy();
dt = $("#dc-data-grid").DataTable( {
// as before
} );
});
。我必须修复一些其他的东西,但是我不会详述。请考虑使用或代替创建<代码> DC .DATABATE < /C> >然后用“代码> $.DATABATE ”来转换它。这些库更好地处理重绘。正如您所指出的,
$.DataTable
是一个单向转换,之后就不会更新任何内容(没有更多的工作,这就是这些库所要做的)。@Gordon,我无法使用dc tableview或dc.datatables.js修复它。这是我的小提琴,如果我只说“谢谢”是不够的。。我欠你一顿午餐/晚餐。。如果你在亚特兰大,请随时告诉我:)我曾经是一名Tableau开发人员,我使用dc.js做了一些poc的片段。。你知道吗??使用dc.js构建了近15个仪表盘,用户非常喜欢。社区和贡献者的所有荣誉:)万岁..听到这个消息真是太好了。非常感谢。
.negative {
background-color:rgba(255,0,0,1.00);
color: #fff;
text-align: center;
}
.positive {
background-color:rgba(50,205,50,1.00);
color: #fff;
text-align: center;
}
var dt = null;
table.on('pretransition', function() {
if(dt)
dt.destroy();
dt = $("#dc-data-grid").DataTable( {
// as before
} );
});