首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Dynatable中隐藏列

在Dynatable中隐藏列
EN

Stack Overflow用户
提问于 2014-04-14 22:43:50
回答 2查看 1.9K关注 0票数 1

我希望用Dynatable替换我的表,但是我需要能够隐藏并显示特定的列组。我在现有的常规html表中这样做,方法是为每个表分配一个组,例如:

代码语言:javascript
复制
<td class = "group1">cell value</td>

然后我有一些隐藏和显示javascript函数:

代码语言:javascript
复制
function hideCol(columnClass){
      $('table .'+columnClass).each(function(index) {
        $(this).hide();
      });

      $('ul#hiddenCols').append('<li id="'+columnClass+'"><a href="javascript:;" onclick="showCol(\''+columnClass+'\');">Show '+columnClass+'</a></li>');
    }

function showCol(columnClass){
  $('table .'+columnClass).each(function(index) {
    $(this).show();
  });

  $('li#'+columnClass).remove();
    }

$(document).ready(function() {
    hideCol("Group2");
    hideCol("Group3");
    hideCol("Group4");

    $('#radio1').click(function() {
    /*$(this).parent().addClass("active").siblings().removeClass("active")*/
        showCol("Group1");        
        hideCol("Group2");
        hideCol("Group3");    
        hideCol("Group4");
    });

有一个合理的直截了当的方式,我可以适应Dynatable做一些类似的事情吗?有没有一种方法,我可以分配类的每一个和在一个Dynatable?

非常感谢,亚历克斯

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-06-03 21:38:58

有一个设置使每个列中的数据继承列标题的类。但是,正如我在这个问题中提到的,在对隐藏列进行排序时,出现了错误。

我无法用Dynatable来完成这个任务,所以我转而使用数据表,在那里隐藏/排序列似乎要稳定得多。

票数 0
EN

Stack Overflow用户

发布于 2014-12-03 09:30:05

您可以编辑dynatable.js的源代码如下,然后使用显示()和隐藏()方法.

代码语言:javascript
复制
function DomColumns(obj, settings) {
...
this.hide = function(indexOrId) {
    var columns = settings.table.columns;
    if (typeof indexOrId == "number")
        columns[indexOrId].hidden = true;
    else {
        for (var i = columns.length - 1; i >= 0; i--) {
            if (columns[i].id == indexOrId) {
                 columns[i].hidden = true;
                 break;
            }
        }
    }
    obj.$element.find(settings.table.headRowSelector).children('[data-dynatable-column="' + indexOrId + '"]')
        .first().hide();
    obj.dom.update();
};
this.show = function(indexOrId) {
    var columns = settings.table.columns;
    if (typeof indexOrId == "number")
        columns[indexOrId].hidden = false;
    else {
        for (var i = columns.length - 1; i >= 0; i--) {
            if (columns[i].id == indexOrId) {
                columns[i].hidden = false;
                break;
            }
        }
    }
    obj.$element.find(settings.table.headRowSelector).children('[data-dynatable-column="' + indexOrId + '"]')
    .first().show();
    obj.dom.update();
};
...
};
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23071705

复制
相关文章

相似问题

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