【问题标题】:Disable sorting for empty columns using DataTable or jQuery使用 DataTable 或 jQuery 禁用对空列的排序
【发布时间】:2012-12-19 17:28:03
【问题描述】:

我需要对其中没有数据的所有列禁用排序。我希望使用 DataTable 或 jQuery 来实现。如果我有多个表,我应该能够遍历所有表并为每一列返回 true 或 false。这样我就可以获取结果并禁用列排序。这是我目前所拥有的,尽管代码不完整。

function detectEmptyColumn(index) {

var sStatus = [], status ='';
var colors = ['red','green','blue','yellow','purple','black','cyan','green'];

$('.data-table').eq(index).find('tbody').each(function(i) {
    var self = this;
    $(self).find('tr td').each(function(j) {
        if (j > 0) {
            $(self).find('tr').each(function(k) {
                var $tableCell  = $(this).find('td:visible').eq(j);

                $tableCell.css('border','2px solid '+colors[j]);
                var $innerWrapper = $('.inner-wrapper', $tableCell);
                status = ('a', $innerWrapper).size() > 0;
                sStatus[k] = status;
                if (status) return false;
            });
        }
    });
});

return status;

}


function disableEmptyColumnSorting() {

$('.data-table').each(function(index) {
    var status = detectEmptyColumn(index);
});

}

这就是 Datatable td 的样子:

<td class="reading-level interpTRC_no_interp
    firstCol
     "><div class="inner-wrapper" style="position: relative;">
        <span title="-5" class="sortindex"></span>


        <a href="/test/test123">

            &lt;PC

                <sup>F</sup>
        </a>
</div></td>

【问题讨论】:

  • 在初始化数据表之前你会知道哪些列没有数据吗?如果是这样,您可以在aoColumns 部分应用bsortable: false 属性。 DataTables Columns
  • 列中的数据会根据某些条件发生变化。所以它总是不同的。

标签: jquery sorting datatable


【解决方案1】:

检测空列比使用 atm 更容易:

function isColumnEmpty(index)
{
    return $("tbody td").filter(function(){
        return $(this).index() == index && $.trim($(this).text()).length;
    }).length == 0;        
}

上面的函数使用了TD上的过滤器,然后检测索引并将其与传递的列的索引进行比较,并检查文本内容是否大于0。由于过滤掉了所有HTML标签,因此您将只有文本。

你用什么插件让我看看如何禁用排序?

【讨论】:

  • 我正在为 jQuery 使用 DataTable。您的函数检查单个单元格而不是整个列,并且还需要检查锚标记是否存在。
  • 这个函数会检查整列。因为我遍历了所有的 TD。
  • 我需要检查单个列,然后返回 true (1) 或 false (0)。而且我有多个表。
猜你喜欢
  • 1970-01-01
  • 2012-06-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-05
  • 2020-07-29
  • 1970-01-01
  • 2015-04-01
相关资源
最近更新 更多