首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Google图表(表)排序后的重新样式

Google图表(表)排序后的重新样式
EN

Stack Overflow用户
提问于 2014-05-28 11:43:25
回答 2查看 1.1K关注 0票数 4

我使用下面的代码来重新设计表的样式,但是每次对列进行排序时,表就会丢失样式。有办法保存它吗?

代码语言:javascript
复制
google.visualization.events.addListener(table, 'ready', function () {
    $(".google-visualization-table-table").find('*').each(function (i, e) {
        var classList = e.className ? e.className.split(/\s+/) : [];
        $.each(classList, function (index, item) {
            if (item.indexOf("google-visualization") === 0) {
                $(e).removeClass(item);
            }
        });
    });

    $(".google-visualization-table-table")
        .removeClass('google-visualization-table-table')
        .addClass('table table-bordered table-striped table-condensed table-hover')
        .css("width", "85%");
});
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-05-28 16:26:25

我认为实现你想要的目标的唯一方法是使用手动排序。当用户单击表头时,该表将触发一个“排序”事件,您可以将事件处理程序连接起来以获取排序信息、对数据进行排序、设置适当的选项并重新绘制该表。

为此,请将表的sort选项设置为event,并创建“排序”事件处理程序。

如果代码中的table是一个表对象,则如下所示:

代码语言:javascript
复制
google.visualization.events.addListener(table, 'sort', function (e) {
    var view = new google.visualization.DataView(data);
    view.setRows(data.getSortedRows({column: e.column, desc: !e.ascending}));
    options.sortAscending = e.ascending;
    options.sortColumn = e.column;
    table.draw(view, options);
});

如果table是ChartWrapper对象,则需要稍微调整一下,并将其添加到代码中包装器的“就绪”事件处理程序中:

代码语言:javascript
复制
google.visualization.events.addListener(table.getChart(), 'sort', function (e) {
    var view = table.getView();
    view.rows = data.getSortedRows({column: e.column, desc: !e.ascending});
    table.setView(view);
    table.setOption('sortAscending', e.ascending);
    table.setOption('sortColumn', e.column);
    table.draw();
});
票数 1
EN

Stack Overflow用户

发布于 2014-09-07 12:31:55

对于当前的Google图表(截至2014年9月6日),以下解决方案正在运行:

代码语言:javascript
复制
var applyStyling = function() {
    // some restyling code:
    $(".google-visualization-table-table").find('*').each(function (i, e) {
        var classList = e.className ? e.className.split(/\s+/) : [];
        $.each(classList, function (index, item) {
            if (item.indexOf("google-visualization") === 0) {
                $(e).removeClass(item);
            }
        });
    });
    $(".google-visualization-table-table")
        .removeClass('google-visualization-table-table')
        .addClass('table table-bordered table-striped table-condensed table-hover')
        .css("width", "85%");
}

// ...

var table = new google.visualization.Table(document.getElementById('table_div'));

google.visualization.events.addListener(table, 'sort', applyStyling);
applyStyling();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23910728

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档