Heim Web-Frontend js-Tutorial jQuery datatables 表格插件介绍

jQuery datatables 表格插件介绍

Jun 01, 2016 am 09:54 AM
jquery table 插件

一、Datatables简介

DataTables是一个jQuery的表格插件。这是一个高度灵活的工具,依据的基础逐步增强,这将增加先进的互动控制,支持任何HTML表格。主要特点:

  1. 自动分页处理
  2. 即时表格数据过滤
  3. 数据排序以及数据类型自动检测
  4. 自动处理列宽度
  5. 可通过CSS定制样式
  6. 支持隐藏列
  7. 易用
  8. 可扩展性和灵活性
  9. 国际化
  10. 动态创建表格
  11. 免费的

 

二、如何使用

在做后台的时候并没有美工和前端工程师来配合你做页面,为了显示数据并有一定的美感,我们可以使用jQuery的DataTables插件来帮助我们完成任务。

1、DataTables的默认配置

<code class="javascript">$(document).ready(function() { 
    $('#example').dataTable(); 
}); </code>
Nach dem Login kopieren

2、DataTables的一些基础属性配置

<code class="javascript">"bPaginate": true, //翻页功能 
"bLengthChange": true, //改变每页显示数据数量 
"bFilter": true, //过滤功能 
"bSort": false, //排序功能 
"bInfo": true,//页脚信息 
"bAutoWidth": true//自动宽度 </code>
Nach dem Login kopieren

3、数据排序

<code class="javascript">$(document).ready(function() {
    $('#example').dataTable({
        "aaSorting": [[4, "desc"]]
    });
});</code>
Nach dem Login kopieren

从第0列开始,以第4列倒序排列

4、隐藏某些列

<code class="javascript">$(document).ready(function() {
    $('#example').dataTable({
        "aoColumnDefs": [{
            "bSearchable": false,
            "bVisible": false,
            "aTargets": [2]
        },
        {
            "bVisible": false,
            "aTargets": [3]
        }]
    });
});</code>
Nach dem Login kopieren

5、国际化

<code class="javascript">$(document).ready(function() {
    $('#example').dataTable({
        "oLanguage": {
            "sLengthMenu": "每页显示 _MENU_ 条记录",
            "sZeroRecords": "抱歉, 没有找到",
            "sInfo": "从 _START_ 到 _END_ /共 _TOTAL_ 条数据",
            "sInfoEmpty": "没有数据",
            "sInfoFiltered": "(从 _MAX_ 条数据中检索)",
            "oPaginate": {
                "sFirst": "首页",
                "sPrevious": "前一页",
                "sNext": "后一页",
                "sLast": "尾页"
            },
            "sZeroRecords": "没有检索到数据",
            "sProcessing": "<img  src="/static/imghw/default1.png" data-src="/images/jquery_datatable_1.jpg" class="lazy" alt="jQuery datatables 表格插件介绍" >"
        }
    });
});</code>
Nach dem Login kopieren

6、排序功能:

<code class="javascript">$(document).ready(function() {
    $('#example').dataTable({
        "aoColumns": [null, {
            "asSorting": ["asc"]
        },
        {
            "asSorting": ["desc", "asc", "asc"]
        },
        {
            "asSorting": []
        },
        {
            "asSorting": []
        }]
    });
});</code>
Nach dem Login kopieren

7、数据获取支持4种:如下

  1. DOM   文档数据  
  2. Javascript array  js数组  
  3. Ajax source     Ajax请求数据  
  4. Server side processing  服务器端数据 

 

三、实例讲解

1、需求:如下图所示,对datatables的内容进行添加,编辑,删除的操作。

2、分析:

  1. 添加功能---单击add按钮,弹出对话框,添加新的内容。
  2. 编辑功能---单击datatables可以选中一行,此行改变颜色,即是已经选中,单击edit按钮,弹出dialog,此dialog中的内容是我们选中行的内容。如果没有选中行,点击edit按钮,则不会弹出dialog。当双击datatables中的某一行时,也弹出dialog,并且双击的行改变颜色,dialog中的内容是我们双击行的内容。
  3. 删除功能---单击datatables选中一行,单击delete按钮,弹出警告框,提示要不要删除所选内容。当没有选中任何内容时,单击delete按钮,不会弹出警告框,也不会删除内容。

3、 编码:

<code class="html"><table id="gridtable" class="gridtable">//声明jquery datatables 
   <thead> 
     <tr> 
       <th>Name 
       </th> 
       <th>Value 
       </th> 
       <th>DisplayOrder 
      </th> 
    </tr> 
  </thead> 
  <tbody> 
    .....//datatables内容,此处省略 
  </tbody> 
</table> 
<input type="button" id="add" value="Add">//添加按钮 
<input type="button" id="edit" value="Edit">//编辑按钮 
<input type="button" id="delete" value="Delete">//删除按钮 
  
  
<div id="e_Attributes">//声明dialog,异步更新 
  @using (Ajax.BeginForm("Update", "Product", new AjaxOptions 
{ 
  UpdateTargetId = "d_Attributes", 
  OnSuccess = "dialogClose", 
  HttpMethod = "Post", 
})) 
  { 
    <table> 
      <tbody> 
        <tr>              
          <td>Name</td> 
          <td> 
           <input id="name" name="Name" type="text" style="width:250px" class="required">*</td> 
        </tr> 
        <tr> 
          <td>Value</td> 
          <td> 
            <input id="value" name="Value" type="text" style="width:250px" class="required">*</td> 
        </tr> 
        <tr>   
         <td>DisplayOrder</td> 
          <td> 
            <input id="displayOrder" name="DisplayOrder" type="text" style="width:128px" class="required">*</td> 
        </tr> 
        <tr> 
          <td> 
            <input id="submit" type="submit" name="submit" value="Submit"> 
            <input id="hiddenValue" type="hidden" name="hiddenValue"> 
          </td> 
        </tr> 
      </tbody> 
    </table> 
  } 
</div> </code>
Nach dem Login kopieren

代码说明,这段代码主要分了两个部分。

第一部分是jquery datatables的声明,

第二部分是dialog的声明,以及操作所需要的action,此部分的操作选择ajax无刷新页面技术。所需js的代码如下:

<code class="javascript">
function dialogClose() {
    $("#e_Attributes").dialog("close");
}

$("#e_Attributes").dialog({
    modal: true,
    autoOpen: false,
    show: {
        effect: "blind",
        duration: 1000
    },
    hide: {
        effect: "explode",
        duration: 1000
    },
    width: 400
});

var editor;

$(function() {
    //声明datatable 
    $("#gridtable").dataTable().fnDestroy();
    editor = $('#gridtable').dataTable({
        "bInfo": false,
        "bServerSide": false,
        'bPaginate': false,
        //是否分页。 
        "bProcessing": false,
        //当datatable获取数据时候是否显示正在处理提示信息。 
        'bFilter': false,
        //是否使用内置的过滤功能。 
        'bLengthChange': false,
        //是否允许用户自定义每页显示条数。 
        'sPaginationType': 'full_numbers',
        //分页样式 
    });
    //单击,赋值,改样式 
    $("#gridtable tbody tr").click(function(e) {
        if ($(this).hasClass('row_selected')) {
            $(this).removeClass('row_selected');
            putNullValue()
        } else {
            editor.$('tr.row_selected').removeClass('row_selected');
            $(this).addClass('row_selected');
            var aData = editor.fnGetData(this);
            if (null != aData) {
                putValue(aData);
            }
        }
    });
    //双击 
    $("#gridtable tbody tr").dblclick(function() {
        if ($(this).hasClass('row_selected')) {
            //$(this).removeClass('row_selected'); 
        } else {
            editor.$('tr.row_selected').removeClass('row_selected');
            $(this).addClass('row_selected');
        }

        var aData = editor.fnGetData(this);
        if (null != aData) {
            putValue(aData);
        }

        $("#hiddenValue").val("edit");
        $("#e_Attributes").dialog("open");

    });
    //添加 
    $("#add").click(function() {
        editor.$('tr.row_selected').removeClass('row_selected');
        putNullValue();

        $("#hiddenValue").val("add");
        $("#e_Attributes").dialog("open");
    });
    //编辑 
    $("#edit").click(function() {
        var productAttributeID = $("#productAttributeID").val();
        if (productAttributeID != "" && productAttributeID != null) {
            $("#hiddenValue").val("edit");
            $("#e_Attributes").dialog("open");
        }

    });
    //删除 
    $("#delete").click(function() {
        var productAttributeID = $("#productAttributeID").val();
        var productID = $("#productID").val();
        if (productAttributeID != null && productAttributeID != "") {
            if (confirm("Delete?")) {
                $.ajax({
                    type: "GET",
                    url: "@Url.Action("DeleteAttribute ", "Product ")",
                    data: {
                        ProductID: productID,
                        ProductAttributeID: productAttributeID
                    },
                    //参数名要和Action 中的参数名相同 
                    dataType: "html",
                    cache: false,
                    success: function(result) {
                        $("#d_Attributes").html(result);
                        $("#productAttributeID").val(null);
                    }
                });
            }
        }
    });

    //赋空值,并去除input-validation-error样式(此样式不管有无,均可去除,所以不用判断了) 
    function putNullValue() {。。。。。。//此处省略
    }
    //赋值 
    function putValue(aData) {。。。。。。 //此处省略 
    }
});

$.ajaxSetup({
    cache: false
}); </code>
Nach dem Login kopieren

这段代码分别为dialog 的声明,datatables的声明以add,edit,delete的操作。

添加功能效果图

jQuery datatables 表格插件介绍

编辑功能效果图:

jQuery datatables 表格插件介绍

删除效果图:

jQuery datatables 表格插件介绍

到此,功能已经全部实现,所需的代码也已经贴出。

4、分页实现

引入CSS文件和JS文件

<code class="html"><style type="text/css" title="currentStyle"> 
    @import "DataTables-1.8.1/media/css/demo_page.css"; 
    @import "DataTables-1.8.1/media/css/demo_table.css"; 
    @import "DataTables-1.8.1/media/css/demo_table_jui.css"; 
</style> 
<script type="text/javascript" language="javascript" src="DataTables-1.8.1/media/js/jquery.js"></script> 
<script type="text/javascript" language="javascript" src="DataTables-1.8.1/media/js/jquery.dataTables.js"></script> 
   
 -------------------------------------------------------------------------- 
   
-----------最简单的方式: 
 $(document).ready(function() { 
 $("#example").dataTable(); 
}); 
   
----------也可以自己定义各属性: 
<script type="text/javascript" language="javascript"> 
    $(document).ready(function() { 
      $("#example").dataTable({ 
//        "bPaginate": true, //开关,是否显示分页器 
//        "bInfo": true, //开关,是否显示表格的一些信息 
//        "bFilter": true, //开关,是否启用客户端过滤器 
//        "sDom": "<>lfrtip<>", 
//        "bAutoWith": false, 
//        "bDeferRender": false, 
//        "bJQueryUI": false, //开关,是否启用JQueryUI风格 
//        "bLengthChange": true, //开关,是否显示每页大小的下拉框 
//        "bProcessing": true, 
//        "bScrollInfinite": false, 
//        "sScrollY": "800px", //是否开启垂直滚动,以及指定滚动区域大小,可设值:'disabled','2000px' 
//        "bSort": true, //开关,是否启用各列具有按列排序的功能 
//        "bSortClasses": true, 
//        "bStateSave": false, //开关,是否打开客户端状态记录功能。这个数据是记录在cookies中的,打开了这个记录后,即使刷新一次页面,或重新打开浏览器,之前的状态都是保存下来的- ------当值为true时aoColumnDefs不能隐藏列 
//        "sScrollX": "50%", //是否开启水平滚动,以及指定滚动区域大小,可设值:'disabled','2000%' 
//        "aaSorting": [[0, "asc"]], 
//        "aoColumnDefs": [{ "bVisible": false, "aTargets": [0]}]//隐藏列 
//        "sDom": '<"H"if>t<"F"if>', 
        "bAutoWidth": false, //自适应宽度 
        "aaSorting": [[1, "asc"]], 
        "sPaginationType": "full_numbers", 
        "oLanguage": { 
          "sProcessing": "正在加载中......", 
          "sLengthMenu": "每页显示 _MENU_ 条记录", 
          "sZeroRecords": "对不起,查询不到相关数据!", 
          "sEmptyTable": "表中无数据存在!", 
          "sInfo": "当前显示 _START_ 到 _END_ 条,共 _TOTAL_ 条记录", 
          "sInfoFiltered": "数据表中共为 _MAX_ 条记录", 
          "sSearch": "搜索", 
          "oPaginate": { 
            "sFirst": "首页", 
            "sPrevious": "上一页", 
            "sNext": "下一页", 
            "sLast": "末页"
          } 
        } //多语言配置 
   
      }); 
    }); 
  </script> </code>
Nach dem Login kopieren

对于 dataTables 来说,表格必须通过 thead 和 tbody 进行说明,如下所示,

<code class="html"><table cellpadding="0" cellspacing="0" border="0" class="display" id="example"> 
    <thead> 
      <tr> 
        <th> 
          Rendering engine 
        </th> 
        <th> 
          Browser 
        </th> 
        <th> 
          Platform(s) 
        </th> 
        <th> 
          Engine version 
        </th> 
        <th> 
          CSS grade 
        </th> 
      </tr> 
    </thead> 
    <tbody> 
      <tr class="odd gradeX"> 
        <td> 
          Trident 
        </td> 
        <td> 
          Internet Explorer 4.0 
        </td> 
        <td> 
          Win 95+ 
        </td> 
        <td class="center"> 
          4 
        </td> 
        <td class="center"> 
          X 
        </td> 
      </tr>


<p>如果没有 thead 将会报错。</p>

<ol>
	<li>bPaginate: 是否分页,默认为 true,分页</li>
	<li>iDisplayLength : 每页的行数,每页默认数量:10</li>
	<li>sPaginationType: 分页样式,支持两种内置方式,two_button 和 full_numbers, 默认使用 two_button。</li>
	<li>bLengthChange : 是否允许用户通过一个下拉列表来选择分页后每页的行数。行数为 10,25,50,100。这个设置需要 bPaginate 支持。默认为 true。</li>
	<li>bFilter: 启用或禁止数据过滤,默认为 true。 注意,如果使用过滤功能,但是希望关闭默认的过滤输入框,应使用 sDom</li>
	<li>bInfo: 允许或者禁止表信息的显示,默认为 true,显示信息。</li>
</ol>

<p>最为简单的使用方式,就是零配置的方式。</p>

<pre class="brush:php;toolbar:false">
<code class="javascript">/*
 * Example init
 */
$(document).ready(function(){
  $('#example').dataTable();
});</code>
Nach dem Login kopieren

以上就是关于jQuery表格插件datatables用法的详细介绍

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Was ist das Installationsverzeichnis der Chrome-Plug-in-Erweiterung? Was ist das Installationsverzeichnis der Chrome-Plug-in-Erweiterung? Mar 08, 2024 am 08:55 AM

Was ist das Installationsverzeichnis der Chrome-Plug-in-Erweiterung? Unter normalen Umständen lautet das Standardinstallationsverzeichnis von Chrome-Plug-In-Erweiterungen wie folgt: 1. Der Standard-Installationsverzeichnis-Speicherort von Chrome-Plug-Ins in Windows XP: C:\DocumentsandSettings\Benutzername\LocalSettings\ApplicationData\Google\Chrome\UserData\ Default\Extensions2. Chrome in Windows7 Der Standardinstallationsverzeichnisspeicherort des Plug-Ins: C:\Benutzer\Benutzername\AppData\Local\Google\Chrome\User

Teilen Sie drei Lösungen mit, warum der Edge-Browser dieses Plug-in nicht unterstützt Teilen Sie drei Lösungen mit, warum der Edge-Browser dieses Plug-in nicht unterstützt Mar 13, 2024 pm 04:34 PM

Wenn Benutzer den Edge-Browser verwenden, fügen sie möglicherweise einige Plug-Ins hinzu, um weitere Anforderungen zu erfüllen. Beim Hinzufügen eines Plug-Ins wird jedoch angezeigt, dass dieses Plug-In nicht unterstützt wird. Heute stellt Ihnen der Herausgeber drei Lösungen vor. Methode 1: Versuchen Sie es mit einem anderen Browser. Methode 2: Der Flash Player im Browser ist möglicherweise veraltet oder fehlt, sodass das Plug-in nicht unterstützt wird. Sie können die neueste Version von der offiziellen Website herunterladen. Methode 3: Drücken Sie gleichzeitig die Tasten „Strg+Umschalt+Entf“. Klicken Sie auf „Daten löschen“ und öffnen Sie den Browser erneut.

Wie verwende ich die PUT-Anfragemethode in jQuery? Wie verwende ich die PUT-Anfragemethode in jQuery? Feb 28, 2024 pm 03:12 PM

Wie verwende ich die PUT-Anfragemethode in jQuery? In jQuery ähnelt die Methode zum Senden einer PUT-Anfrage dem Senden anderer Arten von Anfragen, Sie müssen jedoch auf einige Details und Parametereinstellungen achten. PUT-Anfragen werden normalerweise zum Aktualisieren von Ressourcen verwendet, beispielsweise zum Aktualisieren von Daten in einer Datenbank oder zum Aktualisieren von Dateien auf dem Server. Das Folgende ist ein spezifisches Codebeispiel, das die PUT-Anforderungsmethode in jQuery verwendet. Stellen Sie zunächst sicher, dass Sie die jQuery-Bibliotheksdatei einschließen. Anschließend können Sie eine PUT-Anfrage senden über: $.ajax({u

Wie entferne ich das Höhenattribut eines Elements mit jQuery? Wie entferne ich das Höhenattribut eines Elements mit jQuery? Feb 28, 2024 am 08:39 AM

Wie entferne ich das Höhenattribut eines Elements mit jQuery? Bei der Front-End-Entwicklung müssen wir häufig die Höhenattribute von Elementen manipulieren. Manchmal müssen wir möglicherweise die Höhe eines Elements dynamisch ändern, und manchmal müssen wir das Höhenattribut eines Elements entfernen. In diesem Artikel wird erläutert, wie Sie mit jQuery das Höhenattribut eines Elements entfernen, und es werden spezifische Codebeispiele bereitgestellt. Bevor wir jQuery zum Betreiben des Höhenattributs verwenden, müssen wir zunächst das Höhenattribut in CSS verstehen. Das Höhenattribut wird verwendet, um die Höhe eines Elements festzulegen

jQuery-Tipps: Ändern Sie schnell den Text aller a-Tags auf der Seite jQuery-Tipps: Ändern Sie schnell den Text aller a-Tags auf der Seite Feb 28, 2024 pm 09:06 PM

Titel: jQuery-Tipps: Ändern Sie schnell den Text aller Tags auf der Seite. In der Webentwicklung müssen wir häufig Elemente auf der Seite ändern und bedienen. Wenn Sie jQuery verwenden, müssen Sie manchmal den Textinhalt aller a-Tags auf der Seite gleichzeitig ändern, was Zeit und Energie sparen kann. Im Folgenden wird erläutert, wie Sie mit jQuery den Text aller Tags auf der Seite schnell ändern können, und es werden spezifische Codebeispiele angegeben. Zuerst müssen wir die jQuery-Bibliotheksdatei einführen und sicherstellen, dass der folgende Code in die Seite eingefügt wird: &lt

Verwenden Sie jQuery, um den Textinhalt aller a-Tags zu ändern Verwenden Sie jQuery, um den Textinhalt aller a-Tags zu ändern Feb 28, 2024 pm 05:42 PM

Titel: Verwenden Sie jQuery, um den Textinhalt aller Tags zu ändern. jQuery ist eine beliebte JavaScript-Bibliothek, die häufig zur Verarbeitung von DOM-Operationen verwendet wird. Bei der Webentwicklung müssen wir häufig den Textinhalt des Link-Tags (eines Tags) auf der Seite ändern. In diesem Artikel wird erläutert, wie Sie mit jQuery dieses Ziel erreichen, und es werden spezifische Codebeispiele bereitgestellt. Zuerst müssen wir die jQuery-Bibliothek in die Seite einführen. Fügen Sie den folgenden Code in die HTML-Datei ein:

So ermöglicht Google Chrome die Ausführung von Animations-Plugins So ermöglicht Google Chrome die Ausführung von Animations-Plugins Mar 28, 2024 am 08:01 AM

Wie ermöglicht Google Chrome die Ausführung von Animations-Plugins? Google Chrome ist sehr leistungsfähig, um Videoanimationen anzusehen. Wenn Sie jedoch verschiedene animierte Videos ansehen möchten, müssen Sie nach der Installation Google Chrome installieren Wenn ich das Animations-Plugin verwende, interessiert mich das Video immer noch nicht. Wie soll ich mit diesem Problem umgehen? Lassen Sie sich anschließend vom Editor die einzelnen Schritte zeigen, damit das Animations-Plugin in Google Chrome ausgeführt werden kann. Interessenten können vorbeikommen und einen Blick darauf werfen. Spezifische Schritte für Google Chrome, um die Ausführung von Animations-Plug-ins zu ermöglichen: 1. Führen Sie zunächst Google Chrome auf Ihrem Computer aus und klicken Sie auf die Hauptmenüschaltfläche in der oberen rechten Ecke der Startseite (wie im Bild gezeigt). 2. Nachdem Sie das Hauptmenü geöffnet haben, wählen Sie unten die Option „Einstellungen“ (wie im Bild gezeigt). 3. In den Einstellungen

So entsperren Sie das Google Chrome-Plug-in So entsperren Sie das Google Chrome-Plug-in Apr 01, 2024 pm 01:41 PM

Wie entsperre ich das Google Chrome-Plug-in? Viele Benutzer installieren gerne verschiedene nützliche Plug-Ins, wenn sie Google Chrome verwenden. Diese Plug-Ins können umfangreiche Funktionen und Dienste bereitstellen und die Arbeitseffizienz verbessern immer angezeigt wird, ist blockiert. Wie können Sie das Plug-in entsperren, nachdem Sie auf diese Situation gestoßen sind? Lassen Sie sich nun vom Editor die Schritte zum Entsperren von Plug-Ins in Google Chrome zeigen. Freunde in Not sollten einen Blick darauf werfen. So entsperren Sie Plug-ins in Google Chrome Schritt 1. Wenn die blockierte Eingabeaufforderung angezeigt wird, klicken Sie auf die „Steuerleiste“ und wählen Sie „ActiveX-Steuerelement installieren“. 2. Öffnen Sie dann das Menü „Extras“ des Browsers und klicken Sie auf „Internetoptionen“. 3.

See all articles