Datatable純新手入門

Datatable是基于Jquery的一個非常好用的用來展示數(shù)據(jù)表格的插件杉畜。下面來介紹一下一般的使用方法。

在辛老師的視頻蹭秋,我們曾經(jīng)接觸過datatable扰付,不過當時我們是直接復制其樣式來將它加入我們的網(wǎng)頁。但是這樣的方法和datatable的實際生成相差太多仁讨。許多人的項目都需要datatable來進行數(shù)據(jù)的展示羽莺,但是似乎對datatable一般的用法并不了解,而且也不知道它的功能洞豁,而它的能力實際上比我們之前所了解的要強得多盐固。所以我打算以這個為題目來寫一篇文章(我不打算教難一點的用法,這樣子容易讓大家感到迷惑丈挟,而且也和我一開始的想法不符)刁卜,下面是目錄:
?
1.從零開始構建最簡單的datatable

??1.1 下載

??1.2 構建最簡單的datatable

??1.3 其他方法進行對datatable的數(shù)據(jù)傳入

2.給datatable增加按鈕

??2.1 導出、打印按鈕

??2.2 表內(nèi)按鈕

至少需要下載vscode并安裝live server插件來打開html文件曙咽,以便于更好地學習該文章

?
?
?
?

1.從零開始構建datatable

??在這里蛔趴,我會從零開始構建一個datatable,想要學習的同學跟著做就可以了例朱。(所有的文件都會放到一個鏈接里面孝情,大家自行下載即可)

?1.1 下載

首先進入datatable的官網(wǎng) https://datatables.net/download/

接下來如圖所示進行勾選之拨,可以進行

需要勾選的內(nèi)容

datatable擁有非常多的組件,我們的教學中只需要用到一部分咧叭,所以我們不需要全部打勾

如果不想下載的蚀乔,可以使用這里的百度網(wǎng)盤,里面有一個簡單構建的案例菲茬。

        鏈接:https://pan.baidu.com/s/1_ISp_N3mAHvkLA9vA10gVA    提取碼:p9k8

1.2 構建最簡單的datatable

?首先吉挣,許多同學以前并沒有接觸過前端的經(jīng)驗,所以不知道許多復雜的表現(xiàn)形式(比如說游戲婉弹、還有就是datatbale這樣的表格)睬魂,都已經(jīng)被開發(fā)者進行封裝好了。我們調(diào)用的人镀赌,往往只需要一個標簽和一行JS代碼就可以對該標簽進行渲染氯哮。我們這個datatable也是這個樣子。下面是構建一個最簡單的datatable的過程
創(chuàng)建一個html文件商佛,寫下以下內(nèi)容(文件的結(jié)構就不講了喉钢,可以下載代碼進行理解)

index1.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <title>Document</title>
    <!-- 引入文件 -->
    <script src="./src/jquery.min.js"></script>
    <link rel="stylesheet" href="./src/datatables.css">
    <script src="./src/datatables.js"></script>

<script>
//在頁面加載完成后渲染datatable
//example是table標簽的名字,datatable是基于table標簽的
$(document).ready(function() {
    $('#example').DataTable({});
} );
</script>
<body>
    <table id="example" class="display cell-border" style="width:100%">
       <thead>
            <tr>
                <th>Name</th>
                <th>Position</th>
                <th>Office</th>
                <th>Age</th>
                <th>Start date</th>
                <th>Salary</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td>Tiger Nixon</td>
                <td>System Architect</td>
                <td>Edinburgh</td>
                <td>61</td>
                <td>2011/04/25</td>
                <td>$320,800</td>
            </tr>
            <tr>
                <td>Garrett Winters</td>
                <td>Accountant</td>
                <td>Tokyo</td>
                <td>63</td>
                <td>2011/07/25</td>
                <td>$170,750</td>
            </tr>
          ...
          ...
    <!-- 代碼過長良姆,省略了表格內(nèi)容肠虽,完整代碼請直接下載 -->
        </tfoot>
    </table>
</body>
</html>
</head>
<script>

在打開html文件后,就可以看到如下datatable玛追∷翱危可以看到,生成的最簡單的datatable有全局查找痊剖、按某一列排序韩玩、分頁等功能,能夠極大地加快我們開發(fā)的效率陆馁。


上述代碼得到的datatable

1.3 其他方法進行對datatable的數(shù)據(jù)傳入
??在1.2中找颓,我們使用的是直接在html文件中填入數(shù)據(jù)的方法,這是一種靜態(tài)的形式氮惯,肯定是不能滿足我們?nèi)粘>W(wǎng)頁構建中的需要的叮雳。datatable也定義了別的方式去導入數(shù)據(jù)。這里單單介紹使用ajax來導入妇汗。(該方法需要在服務下才能使用帘不,最簡單的辦法是在vscode中安裝Live Server插件后使用Open with Live Server選項使用)

index2.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="./src/jquery.min.js"></script>
    <link rel="stylesheet" href="./src/datatables.css">
    <script src="./src/datatables.js"></script>

</head>
<script>
$(document).ready(function() {
    $('#example').DataTable( {
        "ajax": "data.txt",
        "columns": [
            { "data": "name" },
            { "data": "position" },
            { "data": "office" },
            { "data": "extn" },
            { "data": "start_date" },
            { "data": "salary" }
        ]
    } );
} );
</script>
<body>
    <table id="example" class="display" style="width:100%">
        <thead>
            <tr>
                <th>Name</th>
                <th>Position</th>
                <th>Office</th>
                <th>Extn.</th>
                <th>Start date</th>
                <th>Salary</th>
            </tr>
        </thead>
    </table>
</body>
</html>

data.txt:

{
  "data": [
    {
      "id": "1",
      "name": "Tiger Nixon",
      "position": "System Architect",
      "salary": "$320,800",
      "start_date": "2011/04/25",
      "office": "Edinburgh",
      "extn": "5421"
    },
    {
      "id": "2",
      "name": "Garrett Winters",
      "position": "Accountant",
      "salary": "$170,750",
      "start_date": "2011/07/25",
      "office": "Tokyo",
      "extn": "8422"
    },
    {
      "id": "3",
      "name": "Ashton Cox",
      "position": "Junior Technical Author",
      "salary": "$86,000",
      "start_date": "2009/01/12",
      "office": "San Francisco",
      "extn": "1562"
    },
......
]
}

??可以看到,相比之前的代碼杨箭,這里的初始化代碼中多了"ajax"和"columns"兩行
??ajax代表使用ajax來請求數(shù)據(jù)寞焙,代碼中僅僅寫了一個data文件,在實際運用當中就可以寫對應的數(shù)據(jù)接口(其給出的數(shù)據(jù)應該與data.txt的格式保持一致)
??columns代表我們對datatable中每一列的設置。這里僅僅設置了每一列的內(nèi)容所對應的對象中的鍵的名稱捣郊,也就是說我們可以隨意更改每一列所展示的內(nèi)容辽狈。
??數(shù)據(jù)的格式不僅僅是json一種,也可以是更簡單的列表格式呛牲,這方面就不再介紹刮萌。

2.給datatable增加按鈕

??僅僅是上面講的內(nèi)容,并不能滿足更加復雜的需求娘扩,所以datatable又有了更多的組件着茸,其中比較重要的就是按鈕
??我們在WEB制表的過程中,經(jīng)常會有對表格進行打印琐旁、導出為PDF涮阔、EXCEL等的需求,datatable的按鈕拓展就可以幫我們實現(xiàn)這方面的需求

index3.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <!-- 引入文件 -->
    <script src="./src/jquery.min.js"></script>
    <link rel="stylesheet" href="./src/datatables.css">
    <script src="./src/datatables.js"></script>
</head>
<script>
$(document).ready(function() {
    $('#example').DataTable( {
        "dom": 'Bfrtip',
        "ajax": "data.txt",
        "columns": [
            { "data": "name" },
            { "data": "position" },
            { "data": "office" },
            { "data": "extn" },
            { "data": "start_date" },
            { "data": "salary" }
        ],
        buttons: [
        'excel','pdf','copy',
        ],
    } );
} );
</script>
<body>
    <table id="example" class="display cell-border" style="width:100%">
        <thead>
            <tr>
                <th>Name</th>
                <th>Position</th>
                <th>Office</th>
                <th>Extn.</th>
                <th>Start date</th>
                <th>Salary</th>
            </tr>
        </thead>
    </table>
</body>
</html>
加入了按鈕拓展后的datatable

??我們可以發(fā)現(xiàn)和之前的相比灰殴,在datatable的代碼中多了兩行數(shù)據(jù)敬特,分別是 dom 和 buttons,dom表示在datatable四周的控件分布牺陶,如果不在最前面加一個B伟阔,那么按鈕就不會出現(xiàn)。而buttons就確定了會有哪些button出現(xiàn)在datatable旁邊义图。

??我這篇文章减俏,只能說是給完全不懂datatbale甚至不怎么懂前端的同學做的一個實際操作說明召烂。

想要學會更多碱工,請查看datatable中文網(wǎng)。 http://datatables.club/

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末奏夫,一起剝皮案震驚了整個濱河市怕篷,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌酗昼,老刑警劉巖廊谓,帶你破解...
    沈念sama閱讀 216,692評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異麻削,居然都是意外死亡蒸痹,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評論 3 392
  • 文/潘曉璐 我一進店門呛哟,熙熙樓的掌柜王于貴愁眉苦臉地迎上來叠荠,“玉大人,你說我怎么就攤上這事扫责¢欢Γ” “怎么了?”我有些...
    開封第一講書人閱讀 162,995評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長者娱。 經(jīng)常有香客問我抡笼,道長,這世上最難降的妖魔是什么黄鳍? 我笑而不...
    開封第一講書人閱讀 58,223評論 1 292
  • 正文 為了忘掉前任推姻,我火速辦了婚禮,結(jié)果婚禮上框沟,老公的妹妹穿的比我還像新娘拾碌。我一直安慰自己,他們只是感情好街望,可當我...
    茶點故事閱讀 67,245評論 6 388
  • 文/花漫 我一把揭開白布校翔。 她就那樣靜靜地躺著,像睡著了一般灾前。 火紅的嫁衣襯著肌膚如雪防症。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,208評論 1 299
  • 那天哎甲,我揣著相機與錄音蔫敲,去河邊找鬼。 笑死炭玫,一個胖子當著我的面吹牛奈嘿,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播吞加,決...
    沈念sama閱讀 40,091評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼裙犹,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了衔憨?” 一聲冷哼從身側(cè)響起叶圃,我...
    開封第一講書人閱讀 38,929評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎践图,沒想到半個月后掺冠,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,346評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡码党,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,570評論 2 333
  • 正文 我和宋清朗相戀三年德崭,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片揖盘。...
    茶點故事閱讀 39,739評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡眉厨,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出扣讼,到底是詐尸還是另有隱情缺猛,我是刑警寧澤,帶...
    沈念sama閱讀 35,437評論 5 344
  • 正文 年R本政府宣布,位于F島的核電站荔燎,受9級特大地震影響耻姥,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜有咨,卻給世界環(huán)境...
    茶點故事閱讀 41,037評論 3 326
  • 文/蒙蒙 一琐簇、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧座享,春花似錦婉商、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,677評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至淳衙,卻和暖如春蘑秽,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背箫攀。 一陣腳步聲響...
    開封第一講書人閱讀 32,833評論 1 269
  • 我被黑心中介騙來泰國打工肠牲, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人靴跛。 一個月前我還...
    沈念sama閱讀 47,760評論 2 369
  • 正文 我出身青樓缀雳,卻偏偏與公主長得像,于是被迫代替她去往敵國和親梢睛。 傳聞我的和親對象是個殘疾皇子肥印,可洞房花燭夜當晚...
    茶點故事閱讀 44,647評論 2 354

推薦閱讀更多精彩內(nèi)容