LayuiTableCheckBox選中:如何實現表格中的多選框選中功能

一、LayuiTableCheckBox簡介

LayuiTableCheckBox是一款基於Layui表格的多選框插件。它可以在表格中添加多選框列,並且支持全選、取消全選以及單選功能,非常方便實用。在本文中,我們將重點探討如何使用LayuiTableCheckBox實現表格中的多選框選中功能。

二、引入LayuiTableCheckBox插件

首先,我們需要引入LayuiTableCheckBox插件。在頁面中引入以下CSS和JS文件:

<link rel="stylesheet" href="//cdn.bootcss.com/layui/2.3.0/css/layui.css" />
<link rel="stylesheet" href="//cdn.bootcss.com/font-awesome/4.7.0/css/font-awesome.css" />
<link rel="stylesheet" href="path/to/layuiTableCheckBox.css" />

<script src="//cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>
<script src="//cdn.bootcss.com/layui/2.3.0/layui.js" charset="utf-8"></script>
<script src="path/to/layuiTableCheckBox.js"></script>

這樣就引入了LayuiTableCheckBox插件所需的所有文件。

三、實現多選框選中功能

接下來,我們要實現多選框選中的功能。在表格中添加多選框列的方法已在LayuiTableCheckBox的官方文檔中有詳細說明,這裡就不做過多介紹,只介紹如何實現選中功能。我們可以在全選按鈕和單選按鈕的點擊事件中,使用以下代碼實現多選框的選中:

var checkStatus = table.checkStatus('table-id');

//全選
$('#checkAll').click(function(){
    layui.each(checkStatus.data, function(index, row){
        row.LAY_CHECKED = true;
    });
    tableRender();
});

//取消全選
$('#unCheckAll').click(function(){
    layui.each(checkStatus.data, function(index, row){
        row.LAY_CHECKED = false;
    });
    tableRender();
});

//單選
table.on('checkbox(table-filter)', function(obj){
    var rowData = obj.data;
    rowData.LAY_CHECKED = obj.checked;
    tableRender();
});

//重繪表格
function tableRender() {
    table.reload('table-id', {
        data: table.cache['table-id']
    });
}

在全選和取消全選按鈕的點擊事件中,我們通過遍歷表格數據,將每一行數據的LAY_CHECKED屬性都設置為true或false,從而實現全選和取消全選的功能。在單選按鈕的點擊事件中,我們將選中行的數據的LAY_CHECKED屬性設置為當前checkbox的選中狀態。最後,我們通過調用table.reload()方法,重新渲染表格,實現多選框選中的效果。

四、完整示例代碼

下面是一份基於Layui官方提供的示例代碼,結合LayuiTableCheckBox實現多選框選中功能的完整示例代碼:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>LayuiTableCheckBox示例頁面</title>
    <link rel="stylesheet" href="//cdn.bootcss.com/layui/2.3.0/css/layui.css" />
    <link rel="stylesheet" href="//cdn.bootcss.com/font-awesome/4.7.0/css/font-awesome.css" />
    <link rel="stylesheet" href="path/to/layuiTableCheckBox.css" />
</head>
<body>
    <div class="layui-container">
        <table class="layui-hide" id="test" lay-filter="test"></table>
        <script type="text/html" id="toolbar">
            <div class="layui-btn-container">
                <button class="layui-btn layui-btn-sm" lay-event="add"><i class="layui-icon"></i></button>
                <button class="layui-btn layui-btn-danger layui-btn-sm" lay-event="deleteSelected"><i class="layui-icon"></i></button>
            </div>
        </script>
    </div>
    <script src="//cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>
    <script src="//cdn.bootcss.com/layui/2.3.0/layui.js" charset="utf-8"></script>
    <script src="path/to/layuiTableCheckBox.js"></script>
    <script>
        layui.use(['table', 'layer'], function () {
            var table = layui.table;
            
            //渲染表格
            table.render({
                elem: '#test',
                url: '/api/test/list',
                toolbar: '#toolbar',
                cols: [[
                    {type: 'checkbox'},
                    {field: 'id', width: 80, title: 'ID', sort: true},
                    {field: 'username', title: '用戶名'},
                    {field: 'email', title: '用戶郵箱'},
                    {field: 'sign', title: '個性簽名'},
                    {field: 'sex', width: 80, title: '性別'},
                    {fixed: 'right', toolbar: '#barDemo', width:150}
                ]]
            });

            //監聽頭部工具欄事件
            table.on('toolbar(test)', function(obj){
                var checkStatus = table.checkStatus(obj.config.id);

                switch(obj.event){
                    case 'add':
                        layer.msg('添加');
                    break;
                    case 'deleteSelected':
                        layer.msg('批量刪除');
                        console.log(checkStatus.data);
                    break;
                }
            });

            //監聽行工具欄事件
            table.on('tool(test)', function(obj){
                var data = obj.data;
                if(obj.event === 'del'){
                    layer.confirm('真的刪除行么', function(index){
                        obj.del();
                        layer.close(index);
                    });
                } else if(obj.event === 'edit'){
                    layer.alert('編輯行:
'+ JSON.stringify(data)) } }); //選中狀態改變時觸發 table.on('checkbox(test)', function(obj){ console.log(obj.checked); //當前是否選中狀態 console.log(obj.data); //選中行的相關數據 console.log(obj.type); //如果觸發的是全選,則為:all;如果觸發的是單選,則為:one; console.log(table.checkStatus('test').data); //獲取選中行的數據 }); //全選 $('#checkAll').click(function(){ layui.each(table.cache['test'], function(index, row){ row.LAY_CHECKED = true; }); tableRender(); }); //取消全選 $('#unCheckAll').click(function(){ layui.each(table.cache['test'], function(index, row){ row.LAY_CHECKED = false; }); tableRender(); }); //重繪表格 function tableRender() { table.reload('test', { data: table.cache['test'] }); } }); </script> </body> </html>

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

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
GVGU的頭像GVGU
上一篇 2024-10-11 11:41
下一篇 2024-10-11 11:41

相關推薦

  • 使用Treeview顯示錶格

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

    編程 2025-04-29
  • 如何實現圖像粘貼到蒙版

    本文將從多個方面介紹圖像粘貼到蒙版的實現方法。 一、創建蒙版 首先,在HTML中創建一個蒙版元素,用於接收要粘貼的圖片。 <div id=”mask” style=”widt…

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

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

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

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

    編程 2025-04-29
  • Django ORM如何實現或的條件查詢

    在我們使用Django進行數據庫操作的時候,查詢條件往往不止一個,一個好的查詢語句需要考慮我們的查詢要求以及業務場景。在實際工作中,我們經常需要使用或的條件進行查詢,本文將詳細介紹…

    編程 2025-04-29
  • Java和Python哪個功能更好

    對於Java和Python這兩種編程語言,究竟哪一種更好?這個問題並沒有一個簡單的答案。下面我將從多個方面來對Java和Python進行比較,幫助讀者了解它們的優勢和劣勢,以便選擇…

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

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

    編程 2025-04-28
  • Python一次性輸入10個數如何實現?

    Python提供了多種方法進行輸入,可以手動逐個輸入,也可以一次性輸入多個數。在需要輸入大量數據時,一次性輸入十個數就非常方便。下面我們從多個方面來講解如何一次性輸入10個數。 一…

    編程 2025-04-28
  • Python每次運行變量加一:實現計數器功能

    Python編程語言中,每次執行程序都需要定義變量,而在實際開發中常常需要對變量進行計數或者累加操作,這時就需要了解如何在Python中實現計數器功能。本文將從以下幾個方面詳細講解…

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

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

    編程 2025-04-28

發表回復

登錄後才能評論