数据表 - 排序图标重复

Posted

技术标签:

【中文标题】数据表 - 排序图标重复【英文标题】:datatables - sort icon duplicating 【发布时间】:2015-10-19 20:20:45 【问题描述】:

我正在尝试为此处找到的数据表设置示例 -

http://www.datatables.net/examples/basic_init/zero_configuration.html

一切都很成功,但由于某种原因排序图标重复了,我不知道为什么。

这就是它的显示方式 -

这是我正在使用的 html -

% extends "dashboard/base.html" %

% load static %

% block extra_head %

    <!-- Tribal CSS -->
    <link href="% static "css/plugins/tribal/tribal-bootstrap.css" %" rel="stylesheet" />
    <link href="% static "css/plugins/tribal/tribal-form.css" %" rel="stylesheet" />

    <!-- Tribal JS -->
    <script src="% static "js/plugins/tribal/tribal-form.js" %"></script>
    <script src="% static "js/plugins/tribal/tribal-shared.js" %"></script>

    <!-- DataTables CSS -->
    <link rel="stylesheet" type="text/css" href="//cdn.datatables.net/1.10.7/css/jquery.dataTables.css">

    <!-- DataTables -->
    <script type="text/javascript" charset="utf8" src="//cdn.datatables.net/1.10.7/js/jquery.dataTables.min.js"></script>

    <script type="text/javascript" charset="utf-8">
    $(document).ready(function() 
        $('#files').DataTable();
     );
    </script>

% endblock %

% block title % user  Dashboard% endblock %

% block content %

            <div class="row">
                <div class="col-lg-12">
                    <h1 class="page-header">Profile</h1>
                </div>
                <!-- /.col-lg-12 -->
            </div>
            <div class="container">
                <div class="well">
                    <dl class="dl-horizontal dl-multicolumn" data-colcount="3">
                        <dt>Name</dt>
                        <dd> user </dd>
                        <dt>Gender</dt>
                        <dd>Male</dd>
                        <dt>School</dt>
                        <dd>Sheffield School</dd>
                        <dt>DOB</dt>
                        <dd>01/01/1986</dd>
                        <dt>Email</dt>
                        <dd> user </dd>
                        <dt>Address</dt>
                        <dd>
                            26 Main Road<br />
                            Sheffield<br />
                            S1 1AA</dd>
                    </dl>
                </div>
            </div>
            <!-- /.row -->
            <div class="row">
                <div class="col-lg-12">
                    <h1 class="page-header">File Access</h1>
                </div>
                <!-- /.col-lg-12 -->
            </div>

                    <div class="panel panel-default">
                        <div class="panel-heading">
                            File & Vendor Listings
                        </div>
                        <!-- /.panel-heading -->
                        <div class="panel-body">
                            <div class="table-responsive">
                                <table class="table table-striped table-bordered table-hover" id="files">
                                    <thead>
                                        <tr>
                                            <th>Vendor</th>
                                            <th>Filename</th>
                                            <th>Invoke Date</th>
                                            <th>Revoke Date</th>
                                            <th>CSS grade</th>
                                        </tr>
                                    </thead>
                                    <tbody>
                                        <tr>
                                            <td>Trident</td>
                                            <td>Internet Explorer 4.0</td>
                                            <td>Win 95+</td>
                                            <td class="center">4</td>
                                            <td class="center">X</td>
                                        </tr>

我正在使用 django,所以 jquery 是从 base.html 扩展而来的 -

<!DOCTYPE html>
<html lang="en">

% load static %

% if user.is_authenticated %

<head>

    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta name="description" content="">
    <meta name="author" content="">

    <title>% block title %datapi.io Company Dashboard% endblock %</title>

    <!-- Latest compiled and minified CSS -->
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">

    <!-- MetisMenu CSS -->
    <link href="% static "css/plugins/metisMenu/metisMenu.min.css" %" rel="stylesheet">

    <!-- Custom CSS -->
    <link href="% static "css/sb-admin-2.css" %" rel="stylesheet">

    <!-- Custom Fonts -->
    <link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css" rel="stylesheet" type="text/css">

    <!-- Google Fonts -->
    <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">

    <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
    <!--[if lt IE 9]>
        <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
        <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
    <![endif]-->

    <!-- jQuery -->
    <script src="//code.jquery.com/jquery-2.1.4.min.js"></script>

    <!-- Latest compiled and minified JavaScript -->
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>

    <!-- Metis Menu Plugin JavaScript -->
    <script src="% static "js/plugins/metisMenu/metisMenu.min.js" %"></script>

    <!-- Custom Theme JavaScript -->
    <script src="% static "js/sb-admin-2.js" %"></script>

    % block extra_head %% endblock %

</head>

【问题讨论】:

看起来 DataTables CSS 和其他可能使用 sorting_desc 和/或 sorting_asc 类的 CSS 文件之间存在冲突。使用浏览器的开发工具检查 CSS 规则并找到有问题的 CSS 文件。 非常感谢!是的,我发现我已修复 thnx 的 sb-admin2.css 存在问题。 这里的答案对我有用。 ***.com/questions/34773857/… 【参考方案1】:

SB Admin 主题包括用于 DataTables 的 Bootstrap 插件。

但是,您发布的代码包含默认的 DataTables CSS。在这种情况下,应该包括一个或另一个。

解决方案是将默认的DataTables CSS (//cdn.datatables.net/1.10.7/css/jquery.dataTables.css) 替换为dataTables.bootstrap.css 并添加dataTables.bootstrap.min.js

如果您更喜欢使用默认的 DataTables CSS,那么您需要在行 232-257 周围修复 sb-admin-2.css 并删除与 table.dataTable 相关的规则。

【讨论】:

链接已损坏 (404) :\【参考方案2】:

这个解决方案由 Elfayer 解决。

渲染器: "header": "bootstrap" ,

【讨论】:

我应该用这条线做什么?请解释您提供的内容 如果表格在标题中显示重复图标,如页面顶部所示。编辑 js 以删除重复的图标。 datatables.net/reference/option/renderer $('#example').dataTable( renderer: "header": "bootstrap" );【参考方案3】:

上述解决方案对我不起作用。我找到了这个对我有用的解决方案,

"initComplete": function(settings, json) 
   $('.dataTables_scrollBody thead tr').css(visibility:'collapse');

https://github.com/DataTables/Plugins/issues/159#issuecomment-333897227

【讨论】:

【参考方案4】:

最后,几个小时后,我将jquery.dataTables.min.css(包含在样式中)替换为dataTables.jqueryui.css,从而解决了这个错误。

【讨论】:

以上是关于数据表 - 排序图标重复的主要内容,如果未能解决你的问题,请参考以下文章

AG-Grid - 显示排序图标而不重新加载数据

jQuery dataTables - 左对齐排序图标

有没有办法在 JQuery Datatable 的标题文本旁边显示排序图标?

excel怎么去重

Java之大数据位图法(无重复排序,重复排序,去重复排序,数据压缩)

最终日期时间排序数据表的日期排序问题[重复]