【问题标题】:Required Help in Hiding Table Rows - dc.js隐藏表格行所需的帮助 - dc.js
【发布时间】:2014-02-14 06:15:01
【问题描述】:

我正在使用dc.js 绘制图表并显示数据表。

一切运行良好。对于表,我创建了一个dimension 和一个group。将组变量传递给可动态记录。

问题是当我在图表中进行一些选择时。数据表值当然会发生变化。但是应该隐藏的记录很少,而是带有0 值。

我想隐藏这些行。

以下是我正在使用的功能。

表格尺寸: var tableDim = ndx.dimension(function(d) { return d.label; })

表组: var tableGroup = tableDim.group().reduceSum(function(d) { return d.count; })

动态表:

var dynatable = $('.data-table').dynatable({
        features: {
            pushState: false
        },
        dataset: {
            records: tableGroup.top(Infinity),
            perPageDefault: 10,
            perPageOptions: [10, 20, 100, 500, 1000]
        }
    }).data('dynatable');

刷新图表选择表:

function RefreshTable() {
        dc.events.trigger(function () {
            dynatable.settings.dataset.originalRecords = tableGroup.top(Infinity);
            dynatable.process();
        });

        $('.data-table tr').each(function() {
            if ($(this).find('td:nth-child(2)').text() < 1) {
                $(this).addClass('zero-value');
            }
        })
    };

我已经编写了jquery 代码来为具有零值的行分配一个类。并且它只分配给前 10 条记录,因为我给出了perPageDefault: 10。但我希望它针对整个表记录运行。

请有人帮我隐藏那些值为 0 的行。

【问题讨论】:

    标签: javascript jquery d3.js dc.js


    【解决方案1】:

    在dynaTable初始化和RefreshTable中分配记录之前,可以复制数据并移除值为0的记录。

    Dynatable 作用于您传递给它的记录,因此您可以以任何您认为合适的方式更改该数据。

    【讨论】:

    • 知道了。非常感谢!!
    • 我如何定位 group 创建的每一行。我无法使用forEach 功能。错误为Uncaught TypeError: Object #&lt;Object&gt; has no method 'forEach'
    • var records = tableGroup.top(Infinity);将检索包含所有组数据的数组。
    • 对不起。我仍然得到 0 值的记录。用过这个records.forEach(function(d) { if( d.value == 0 ) { delete d} })
    • tableGroup.top(Infinity) 返回一个包含组中记录的新数组。使用您最喜欢的过程来更改 javascript 数组,然后将该数组(不要再次调用 tableGroup.top(Infinity))传递给 dynatable。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-19
    • 1970-01-01
    相关资源
    最近更新 更多