layui動態表格詳解

一、layui動態表格日期

在實際項目開發中,經常需要在表格中展示日期數據。 layui提供了非常方便的日期格式化功能,只需要在對應表格列的templet屬性中加入格式化字符串即可。

<table id="demo" lay-filter="test"></table>
&lt;script&gt;
layui.use('table', function(){
  var table = layui.table;
  table.render({
    elem: '#demo'
    ,url:'/demo/table/user/'
    ,page:true
    ,cols: [[
      {field:'id', title:'ID', width:80}
      ,{field:'username', title:'用戶名', width:120}
      ,{field:'email', title:'郵箱', width:150}
      ,{field:'sign', title:'簽名'}
      ,{field:'sex', title:'性別'}
      ,{field:'city', title:'城市'}
      ,{field:'experience', title:'積分', width:80, sort: true}
      ,{field:'ip', title:'IP'}
      ,{field:'logins', title:'登入次數', width:100, sort: true}
      ,{field:'joinTime', title:'加入時間', width:120, sort: true, templet: function(d){
        return layui.util.toDateString(d.joinTime, 'yyyy-MM-dd HH:mm:ss');
      }}
    ]]
  });
});
&lt;/script&gt;

以上代碼演示了在表格中展示某用戶加入時間的日期格式化操作。templet屬性中傳入函數,使用Layui自帶的util.toDateString函數對日期格式化。

二、layui動態表格監聽input

表格中的輸入框改變後需要做一些操作,如實時更新本地數據或請求後端接口保存數據。Layui提供了監聽表格input事件的方法。

table.on('edit(test)', function(obj){
  var value = obj.value //得到修改後的值
  ,data = obj.data //得到所在行所有鍵值
  ,field = obj.field; //得到字段
  //後續操作...
});

以上代碼演示了監聽表格test中所有input的修改事件,代碼裡面可以根據需求進一步操作。

三、layui動態表格分頁

表格分頁是Layui表格組件非常重要的一個功能,可以輕鬆地實現數據展示效果與用戶體驗的平衡。而在Layui中設置分頁也是一件非常方便的事情。只需要在表格渲染時定義page屬性即可。

<table id="demo" lay-filter="test"></table>
&lt;script&gt;
layui.use('table', function(){
  var table = layui.table;
  table.render({
    elem: '#demo'
    ,url:'/demo/table/user/'
    ,page:true
    ,cols: [[
      {field:'id', title:'ID', width:80}
      ,{field:'username', title:'用戶名', width:120}
      ,{field:'email', title:'郵箱', width:150}
      ,{field:'sign', title:'簽名'}
      ,{field:'sex', title:'性別'}
      ,{field:'city', title:'城市'}
      ,{field:'experience', title:'積分', width:80, sort: true}
      ,{field:'ip', title:'IP'}
      ,{field:'logins', title:'登入次數', width:100, sort: true}
      ,{field:'joinTime', title:'加入時間', width:120, sort: true}
    ]]
  });
});
&lt;/script&gt;

以上代碼演示了在表格中添加分頁的代碼,需要將page屬性設置為true。當然,在實際使用中,我們還可以對分頁進行自定義設置。如設置每頁展示數量、添加分頁信息提示語等。

四、layui動態表格輸入框

輸入框是常見的表格組件,Layui為表格中的輸入框提供了非常方便的模板渲染方式。

<table id="demo" lay-filter="test"></table>
&lt;script&gt;
layui.use(['table', 'form'], function(){
  var table = layui.table;
  var form = layui.form;
  
  //同時綁定多個表格渲染
  table.render({
    elem: '#demo1'
    ,data: [{
      "id": "10001"
      ,"username": "杜甫"
      ,"email": "xianxin@layui.com"
      ,"sex": "男"
      ,"city": "浙江杭州"
      ,"experience": "116"
      ,"ip": "192.168.0.8"
      ,"logins": "108"
      ,"joinTime": "2016-10-14"
    },{
      "id": "10002"
      ,"username": "李白"
      ,"email": "xianxin@layui.com"
      ,"sex": "男"
      ,"city": "浙江杭州"
      ,"experience": "12"
      ,"ip": "192.168.0.8"
      ,"logins": "106"
      ,"joinTime": "2016-10-14"
    }]
    ,page: true
    ,cols: [[
      {field:'id', title:'ID', width:80}
      ,{field:'username', title:'用戶名', width:120, edit: 'text'}
      ,{field:'email', title:'郵箱', width:150, edit: 'text'}
      ,{field:'sex', title:'性別', width:80, edit: 'text', sort: true}
      ,{field:'city', title:'城市', edit: 'text'}
      ,{field:'experience', title:'積分', width:80, edit: 'text', sort: true}
      ,{field:'ip', title:'IP', width:120, edit: 'text'}
      ,{field:'logins', title:'登入次數', width:100, edit: 'text', sort: true}
      ,{field:'joinTime', title:'加入時間', width:120}
    ]]
  });
  
  //監聽單元格編輯
  table.on('edit(test)', function(obj){
    console.log(obj.field); //當前編輯的字段名
    console.log(obj.value); //當前編輯的值
    console.log(obj.data); //所在行的所有相關數據
   
    //提交後台
  });
});
&lt;/script&gt;

以上代碼演示了如何渲染一個帶有輸入框的表格,需要在對應的列設置edit屬性,並在對應單元格渲染函數中添加edit屬性值,此時表格對應單元格將會渲染一個輸入框。同時,需要監聽表格中所有的編輯事件,並在回調函數中進行處理。

五、layui動態表格亂碼

在前後端分離的開發中,數據傳輸往往採用異步傳輸,ajax傳遞的JSON數據格式是UTF-8的。當我們出現中文亂碼時,需要指定編碼格式為UTF-8。

<table id="demo" lay-filter="test"></table>
&lt;script&gt;
layui.use('table', function(){
  var table = layui.table;
  table.render({
    elem: '#demo'
    ,url:'/demo/table/user/'
    ,page:true
    ,cols: [[
      {field:'id', title:'ID', width:80}
      ,{field:'username', title:'用戶名', width:120}
      ,{field:'email', title:'郵箱', width:150}
      ,{field:'sign', title:'簽名'}
      ,{field:'sex', title:'性別'}
      ,{field:'city', title:'城市'}
      ,{field:'experience', title:'積分', width:80, sort: true}
      ,{field:'ip', title:'IP'}
      ,{field:'logins', title:'登入次數', width:100, sort: true}
      ,{field:'joinTime', title:'加入時間', width:120, sort: true, templet: function(d){
        return layui.util.toDateString(d.joinTime, 'yyyy-MM-dd HH:mm:ss');
      }}
    ]]
    ,text: {
        none: '暫無相關數據'
    }
    ,contentType: 'application/json; charset=utf-8'
    ,dataType: 'json'
  });
});
&lt;/script&gt;

以上代碼演示了contentType和dataType的設置,使用contentType指定請求數據格式為’application/json; charset=utf-8’,使用dataType指定數據解析格式為json。

六、layui動態表格圖片上傳

表格中涉及到圖片上傳操作的時候,Layui提供了非常方便的方式。

<table id="test" lay-filter="demo">
&lt;script&gt;
layui.use(['table', 'upload'], function(){
  var table = layui.table;
  var upload = layui.upload;
  
  //單元格渲染
  table.render({
    elem: '#test'
    ,url: '/demo/table/user/'
    ,cols: [[
      {checkbox: true}
      ,{field:'id', title:'ID', width:80}
      ,{field:'username', title:'用戶名', width:120}
      ,{field:'email', title:'郵箱', width:150, edit: 'text'}
      ,{field:'sign', title:'簽名'}
      ,{field:'sex', title:'性別'}
      ,{field:'city', title:'城市'}
      ,{field:'experience', title:'積分', width:80, sort: true}
      ,{field:'ip', title:'IP'}
      ,{field:'logins', title:'登入次數', width:100, sort: true}
      ,{field:'joinTime', title:'加入時間', width:120, sort: true
        ,templet: function(d){
          return layui.util.toDateString(d.joinTime, 'yyyy-MM-dd HH:mm:ss');
        }
      }
      ,{fixed: 'right', title:'操作', toolbar: '#barDemo'}
    ]]
    ,page: true
    ,id: 'testReload'
    ,response: {
        statusCode: 200 //規定成功的狀態碼,默認:0
    }
    ,toolbars: [{
      icon: 'layui-icon-upload'
      ,title: '批量上傳'
      ,event: 'uploadImg'
    }]
  });
  
  //上傳圖片
  upload.render({
    elem: '#test'
    ,url: '' //圖片上傳接口
    ,method: 'post'
    ,accept: 'images'
    ,auto: false
    ,bindAction: '.uploadImg'
    ,headers: {
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content'),
        'Authorization': 'Bearer '+ sessionStorage.getItem('token')
    }
    ,done: function(res){
      console.log(res)
    }
    ,error: function () {
      layer.msg('上傳失敗,請檢查網絡');
    }
  });
}); 
&lt;/script&gt;

以上代碼演示了涉及圖片上傳圖片預覽的Layui表格代碼實現方式。需要在對應列中添加toolbar屬性,並在建造表格的時候添加toolbars屬性,同時對應單元格需要添加manage屬性並使用上傳文件組件進行上傳操作。

七、layui動態表格怎麼傳參

Layui動態表格可以通過params參數和where參數進行參數傳遞。其中,params發生在最初始的請求上,而where參數則是發生在數據重載時的參數。

//params參數傳遞
table.render({
  elem: "#demo"
  ,url: "url"
  ,params: {
    test: 123
  }
  ,where: {
    test: 123
  }
})

以上代碼對兩種情況的參數進行了展示,params直接在定義表格的時候對請求的params進行定義,而where在數據重載時進行定義。

八、layui動態表格日期選擇器

Layui的日期選擇器非常方便易用,同時與Layui表格的結構銜接地非常緊密。我們可以在表格的渲染函數中對需要使用到時間的列添加lay-event屬性為date,然後在監聽事件中對其進行日期選擇器的綁定。

//日期選擇器綁定
table.render({
elem: "#tableTest5"
,id: "

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

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

相關推薦

  • QML 動態加載實踐

    探討 QML 框架下動態加載實現的方法和技巧。 一、實現動態加載的方法 QML 支持從 JavaScript 中動態指定需要加載的 QML 組件,並放置到運行時指定的位置。這種技術…

    編程 2025-04-29
  • 使用Treeview顯示錶格

    在web開發中,顯示錶格數據是一項很常見的需求。當我們需要在頁面上顯示大量數據時,除了使用傳統的表格樣式外,還可以使用Treeview這種可摺疊的表格樣式,以便更好地展示數據。本文…

    編程 2025-04-29
  • Python愛心代碼動態

    本文將從多個方面詳細闡述Python愛心代碼動態,包括實現基本原理、應用場景、代碼示例等。 一、實現基本原理 Python愛心代碼動態使用turtle模塊實現。在繪製一個心形的基礎…

    編程 2025-04-29
  • 如何使用HTML修改layui內部樣式影響全局

    如果您想要使用layui來構建一個美觀的網站或應用,您可能需要使用一些自定義CSS來修改layui內部組件的樣式。然而,修改layui組件的樣式可能會對整個頁面產生影響,甚至可能破…

    編程 2025-04-29
  • Python根據表格數據生成折線圖

    本文將介紹如何使用Python根據表格數據生成折線圖。折線圖是一種常見的數據可視化圖表形式,可以用來展示數據的趨勢和變化。Python是一種流行的編程語言,其強大的數據分析和可視化…

    編程 2025-04-29
  • Python 圖片轉表格

    本文將詳細介紹如何使用Python將圖片轉為表格。大家平時在處理一些資料的時候難免會遇到圖片轉表格的需求。比如從PDF文檔中提取表格等場景。當然,這個功能也可以通過手動複製、粘貼,…

    編程 2025-04-29
  • python爬取網頁並生成表格

    本文將從以下幾個方面詳細介紹如何使用Python爬取網頁數據並生成表格: 一、獲取網頁數據 獲取網頁數據的一般思路是通過HTTP請求獲取網頁內容,最常用的方式是使用Python庫r…

    編程 2025-04-28
  • t3.js:一個全能的JavaScript動態文本替換工具

    t3.js是一個非常流行的JavaScript動態文本替換工具,它是一個輕量級庫,能夠很容易地實現文本內容的遞增、遞減、替換、切換以及其他各種操作。在本文中,我們將從多個方面探討t…

    編程 2025-04-28
  • Python如何做表格為中心

    本文將從多個方面詳細闡述Python如何做表格,包括表格的創建、數據的插入、表格的樣式設置等內容。 一、創建表格 要在Python中創建表格,我們可以使用第三方庫Pandas。具體…

    編程 2025-04-28
  • 使用easypoi創建多個動態表頭

    本文將詳細介紹如何使用easypoi創建多個動態表頭,讓表格更加靈活和具有可讀性。 一、創建單個動態表頭 easypoi是一個基於POI操作Excel的Java框架,支持通過註解的…

    編程 2025-04-28

發表回復

登錄後才能評論