dataTables jquery - 如何添加排序图像/图标?

Posted

技术标签:

【中文标题】dataTables jquery - 如何添加排序图像/图标?【英文标题】:dataTables jquery - how to add sorting image/icon? 【发布时间】:2013-06-18 12:52:15 【问题描述】:

我使用 dataTables jquery。我想将排序图像添加到列中,并且图像 shd 在排序时也会发生变化。也就是说,如果图像显示降序图标并且单击它应该变为升序图标。使用dataTables jquery如何实现?

我的代码:

$("#rates").dataTable(
         "bPaginate": false,
         "sScrollY":  "250px",
         "bAutoWidth": false,
         "bScrollCollapse": true,
         "fnInitComplete": function() 
                this.css("visibility", "visible");,
                "bLengthChange": false
    );

【问题讨论】:

【参考方案1】:

$(document).ready(function() 
  $("#tblVal").dataTable(
    "bPaginate": false,
    "sScrollY": "250px",
    "bAutoWidth": false,
    "bScrollCollapse": true,
    "fnInitComplete": function() 
      this.css("visibility", "visible");
    ,
    "bLengthChange": false
  );
);
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
  <title>new document</title>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
  <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
  <script src="http://ajax.aspnetcdn.com/ajax/jquery.dataTables/1.9.4/jquery.dataTables.min.js"></script>
  <link href="http://ajax.aspnetcdn.com/ajax/jquery.dataTables/1.9.4/css/jquery.dataTables.css" rel="stylesheet" />
</head>

<body>
  <div id="foo">
    <table id="tblVal" class="data display datatable">
      <thead>
        <tr>
          <th>s.no</th>
          <th>ID</th>
          <th>Name</th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <td>1</td>
          <td>100</td>
          <td>vsa</td>
        </tr>
        <tr>
          <td>2</td>
          <td>101</td>
          <td>asa</td>
        </tr>
        <tr>
          <td>3</td>
          <td>102</td>
          <td>nfsa</td>
        </tr>
      </tbody>
    </table>
  </div>
</body>

</html>

确保您添加了正确的 js 和 css 文件。试试这个对我有用的代码

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
  <title> new document </title>
 <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
  <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
  <script type="text/javascript" charset="utf8" src="http://ajax.aspnetcdn.com/ajax/jquery.dataTables/1.9.4/jquery.dataTables.min.js"></script>
  <link rel="stylesheet" type="text/css" href="http://ajax.aspnetcdn.com/ajax/jquery.dataTables/1.9.4/css/jquery.dataTables.css">
 <script type="text/javascript">
    $(document).ready(function()
        $("#tblVal").dataTable(
            "bPaginate": false,
         "sScrollY":  "250px",
         "bAutoWidth": false,
         "bScrollCollapse": true,
         "fnInitComplete": function() 
                this.css("visibility", "visible");,
                "bLengthChange": false
    );
    );
 </script>
 </head>
 <body>
<div id="foo">
    <table id="tblVal" class="data display datatable">
        <thead>
            <tr>
                <th>s.no</th>
                <th>ID</th>
                <th>Name</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td>1</td>
                <td>100</td>
                <td>vsa</td>
            </tr>
            <tr>
            <td>2</td>
            <td>101</td>
            <td>asa</td>
            </tr>
            <tr>
            <td>3</td>
            <td>102</td>
            <td>nfsa</td>
            </tr>
        </tbody>
    </table>
</div>
 </body>
</html>

【讨论】:

排序图片在哪里添加? 我没有包含 css。这就是问题所在。谢谢【参考方案2】:

在项目中包含 images 文件夹后,调整 CSS 中的链接以指向您的图像。在 CSS 中查找以下代码:

table.dataTable thead .sorting 
  background-image: url("../images/sort_both.png");

【讨论】:

【参考方案3】:

默认情况下,数据表启用排序。 您无法更改数据表中排序图标的颜色,因为它们不是图标,它们是PNG 图像。 您需要覆盖这些 CSS 属性。 (数据表 1.10)

升序
table.dataTable thead .sorting_asc 
    background-image: url("/YourImageFolder/sort_asc.png")

降序
table.dataTable thead .sorting_desc 
    background-image: url("/YourImageFolder/sort_desc.png")

均已禁用
table.dataTable thead .sorting 
    background-image: url("/YourImageFolder/sort_both.png")


已禁用升序
table.dataTable thead .sorting_asc_disabled 
    background-image: url("/YourImageFolder/sort_asc_disabled.png")

降序禁用
table.dataTable thead .sorting_desc_disabled 
    background-image: url("/YourImageFolder/sort_desc_disabled.png")

【讨论】:

以上是关于dataTables jquery - 如何添加排序图像/图标?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 jQuery dataTables 列中添加一些信息

如何在 jQuery DataTables 中添加静态列

关于jQuery中dataTable问题,如何修改sAjaxSource添加参数

如何从jquery更新datatable对象

如何删除 jQuery DataTables 插件添加的搜索栏和页脚?

如何在 Jquery Datatable 分页锚元素上添加额外的类?