treetable-lay的使用指南

一、概述

treetable-lay是一款基於layui框架的樹形表格組件,在實現樹形數據展示的同時,也保留了表格的完整性,提供了豐富的排序、篩選、搜索等功能,還能自定義單元格樣式和事件。

本文將從以下幾個方面詳細闡述treetable-lay的使用。

二、組件安裝與初始化

1、安裝

首先,在頁面中引入treetable-lay的相關資源文件:


<link rel="stylesheet" href="layui/css/layui.css">
<script src="layui/layui.js"></script>
<script src="treetable-lay/treetable-lay.js"></script>

上述代碼中,layui相關資源文件需要按照官方文檔中的說明進行安裝,而treetable-lay的資源文件則需放置在lib目錄下。

2、初始化

在頁面中創建一個表格容器,然後在頁面加載完成後,使用layui.use()函數初始化treetable-lay組件:


<table id="demo" lay-filter="treetable"></table>

<script>
layui.use('treetable', function(){
  var treetable = layui.treetable;
  
  //渲染表格
  treetable.render({
    elem: '#demo',
    url: 'data.json',
    treeColIndex: 1,
    treeSpid: '0',
    treeIdName: 'id',
    treePidName: 'parentId',
    treeDefaultClose: true,
    cols: [[
      {type: 'numbers'},
      {field: 'title', title: '標題'},
      {field: 'id', title: '編號'},
      {field: 'sort', title: '排序', sort: true},
      {field: 'createDate', title: '創建時間'},
    ]]
  });
});
</script>

上述代碼中,elem表示表格容器的選擇器,url表示獲取表格數據的接口地址,treeColIndex表示樹形結構列的索引,treeSpid表示根節點的父級ID,treeIdName表示節點ID的鍵名,treePidName表示節點的父級ID的鍵名,treeDefaultClose表示默認是否閉合所有節點,cols表示表格的列信息。

三、樹形結構操作

1、節點展開與摺疊

treetable-lay支持對樹形結構的節點進行展開和摺疊,只需在表格容器元素上設置lay-filter屬性為treetable,即可實現該功能。

示例如下:


<table id="demo" lay-filter="treetable"></table>

2、節點選中

treetable-lay還支持對樹形結構的節點進行選中操作,當選中節點時,會觸發treetable.on()函數,開發人員可以在on()函數中自定義操作。

示例如下:


layui.use('treetable', function(){
  var treetable = layui.treetable;
  
  treetable.on('checkbox(treetable)', function(obj){
    console.log(obj.checked); //是否選中
    console.log(obj.data); //選中行的相關數據
    console.log(obj.type); //如果觸發的是全選,則為:all,如果觸發的是單選,則為:one
  });
});

四、自定義單元格

1、單元格樣式

treetable-lay支持對單元格的樣式進行自定義,只需在cols下的某一列中設置templet屬性和自定義模板即可。

示例如下:


cols: [[
  {field: 'title', title: '標題', templet: function(d){
    return '<span style="color:red;">' + d.title + '</span>';
  }},
  {field: 'id', title: '編號'},
  {field: 'sort', title: '排序', sort: true},
  {field: 'createDate', title: '創建時間'},
]]

2、單元格事件

treetable-lay還支持對單元格的事件進行自定義,只需在cols下的某一列中設置templet屬性和自定義模板,然後在自定義模板的節點元素上綁定事件處理函數即可。

示例如下:


cols: [[
  {field: 'title', title: '標題', templet: function(d){
    return '<a lay-event="view">' + d.title + '</a>';
  }},
  {field: 'id', title: '編號'},
  {field: 'sort', title: '排序', sort: true},
  {field: 'createDate', title: '創建時間'},
]]

//綁定單元格事件
treetable.on('tool(treetable)', function(obj){
  console.log(obj.event); //獲取事件類型
  console.log(obj.data); //獲取當前行的數據
});

五、排序、篩選、搜索

1、排序

treetable-lay支持對表格進行排序,只需在表格容器元素上設置lay-filter屬性為treetable,並在cols下的某一列中設置sort屬性為true即可。

示例如下:


<table id="demo" lay-filter="treetable"></table>

cols: [[
  {type: 'numbers'},
  {field: 'title', title: '標題'},
  {field: 'id', title: '編號', sort: true},
  {field: 'sort', title: '排序', sort: true},
  {field: 'createDate', title: '創建時間'},
]]

2、篩選

treetable-lay支持對表格進行篩選,只需在cols下的某一列中設置filter屬性為true和自定義篩選項,然後在表格容器元素上綁定lay-filter屬性即可。

示例如下:


<table id="demo" lay-filter="treetable"></table>

cols: [[
  {type: 'numbers'},
  {field: 'title', title: '標題', filter: true},
  {field: 'id', title: '編號'},
  {field: 'sort', title: '排序', sort: true, filter: true},
  {field: 'createDate', title: '創建時間'},
]]

//綁定表格篩選事件
treetable.on('filter(treetable)', function(obj){
  console.log(obj.field); //獲取篩選的字段名
  console.log(obj.value); //獲取篩選的值
  console.log(obj.where); //獲取當前篩選的篩選條件
});

3、搜索

treetable-lay支持對表格進行搜索,只需在頁面中創建一個搜索框和一個搜索按鈕,並在點擊搜索按鈕時觸發treetable.reload()函數即可。

示例如下:


<div class="search">
  <input type="text" id="keyword" placeholder="請輸入關鍵字">
  <button id="searchBtn">搜索</button>
</div>

//綁定搜索按鈕事件
$('#searchBtn').click(function(){
  var keyword = $('#keyword').val();
  treetable.reload({
    where: { //設定異步數據接口的額外參數,任意設
      keyword: keyword
    }
  });
});

六、完整示例代碼


<link rel="stylesheet" href="layui/css/layui.css">
<script src="layui/layui.js"></script>
<script src="treetable-lay/treetable-lay.js"></script>

<table id="demo" lay-filter="treetable"></table>

<script>
layui.use('treetable', function(){
  var treetable = layui.treetable;

  //渲染表格
  treetable.render({
    elem: '#demo',
    url: 'data.json',
    treeColIndex: 1,
    treeSpid: '0',
    treeIdName: 'id',
    treePidName: 'parentId',
    treeDefaultClose: true,
    cols: [[
      {type: 'numbers'},
      {field: 'title', title: '標題', templet: function(d){
        return '<span style="color:red;">' + d.title + '</span>';
      }},
      {field: 'id', title: '編號', sort: true},
      {field: 'sort', title: '排序', sort: true},
      {field: 'createDate', title: '創建時間'},
    ]]
  });

  //綁定搜索按鈕事件
  $('#searchBtn').click(function(){
    var keyword = $('#keyword').val();
    treetable.reload({
      where: { //設定異步數據接口的額外參數,任意設
        keyword: keyword
      }
    });
  });

  //綁定單元格事件
  treetable.on('tool(treetable)', function(obj){
    console.log(obj.event); //獲取事件類型
    console.log(obj.data); //獲取當前行的數據
  });

  //綁定表格篩選事件
  treetable.on('filter(treetable)', function(obj){
    console.log(obj.field); //獲取篩選的字段名
    console.log(obj.value); //獲取篩選的值
    console.log(obj.where); //獲取當前篩選的篩選條件
  });

  //綁定節點選中事件
  treetable.on('checkbox(treetable)', function(obj){
    console.log(obj.checked); //是否選中
    console.log(obj.data); //選中行的相關數據
    console.log(obj.type); //如果觸發的是全選,則為:all,如果觸發的是單選,則為:one
  });
});
</script>

<div class="search">
  <input type="text" id="keyword" placeholder="請輸入關鍵字">
  <button id="searchBtn">搜索</button>
</div>

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/258372.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-15 12:49
下一篇 2024-12-15 12:49

相關推薦

  • wzftp的介紹與使用指南

    如果你需要進行FTP相關的文件傳輸操作,那麼wzftp是一個非常優秀的選擇。本文將從詳細介紹wzftp的特點和功能入手,幫助你更好地使用wzftp進行文件傳輸。 一、簡介 wzft…

    編程 2025-04-29
  • Fixmeit Client 介紹及使用指南

    Fixmeit Client 是一款全能的編程開發工具,該工具可以根據不同的編程語言和需求幫助開發人員檢查代碼並且提供錯誤提示和建議性意見,方便快捷的幫助開發人員在開發過程中提高代…

    編程 2025-04-29
  • Open h264 slic使用指南

    本文將從多個方面對Open h264 slic進行詳細闡述,包括使用方法、優缺點、常見問題等。Open h264 slic是一款基於H264視頻編碼標準的開源視頻編碼器,提供了快速…

    編程 2025-04-28
  • mvpautocodeplus使用指南

    該指南將介紹如何使用mvpautocodeplus快速開發MVP架構的Android應用程序,並提供該工具的代碼示例。 一、安裝mvpautocodeplus 要使用mvpauto…

    編程 2025-04-28
  • Python mmap共享使用指南

    Python的mmap模塊提供了一種將文件映射到內存中的方法,從而可以更快地進行文件和內存之間的讀寫操作。本文將以Python mmap共享為中心,從多個方面對其進行詳細的闡述和講…

    編程 2025-04-27
  • Python隨機函數random的使用指南

    本文將從多個方面對Python隨機函數random做詳細闡述,幫助讀者更好地了解和使用該函數。 一、生成隨機數 random函數生成隨機數是其最常見的用法。通過在調用random函…

    編程 2025-04-27
  • RabbitMQ Server 3.8.0使用指南

    RabbitMQ Server 3.8.0是一個開源的消息隊列軟件,官方網站為https://www.rabbitmq.com,本文將為你講解如何使用RabbitMQ Server…

    編程 2025-04-27
  • 按鍵精靈Python插件使用指南

    本篇文章將從安裝、基礎語法使用、實戰案例以及常用問題四個方面介紹按鍵精靈Python插件的使用方法。 一、安裝 安裝按鍵精靈Python插件非常簡單,只需在cmd命令行中輸入以下代…

    編程 2025-04-27
  • Ghostscript使用指南

    本文旨在對Ghostscript的常見使用進行詳細的闡述和舉例,內容涵蓋了Ghostscript的基本用法、PDF轉換、PDF加密、PDF合併、PDF拆分等多個方面。 一、基本用法…

    編程 2025-04-27
  • Python輸入變量的使用指南

    Python作為一種高級編程語言,其表達式和語法的簡潔和易讀性特點備受程序員青睞。本文將從多個方面詳細闡述Python輸入變量的使用方法。 一、變量類型 在Python中,變量名是…

    編程 2025-04-27

發表回復

登錄後才能評論