基于DataTables实现根据每个用户的设置动态显示隐藏列,支持排序

本文介绍如何在后台管理系统中,利用DataTables实现用户自定义显示列的功能。用户可以设置显示哪些列,且设置互不影响,同时支持列的个性化排序。文章详细讲解了HTML和JavaScript代码实现,包括核心方法的解析,最后提供了完整源码的GitHub链接和在线预览地址。
摘要由CSDN通过智能技术生成

前言

在后台管理系统开发中,难免会出现列数太多的情况,这里提供一个解决方案:用户设置显示哪些列,每个用户互不影响,并且可以根据用户的习惯设置列的排序。
1、演示
2、html代码说明
3、javascript代码说明
4、总结

演示

在这里插入图片描述

HTML代码

<link rel="stylesheet" type="text/css" href="DataTables-1.10.15//media/css/jquery.dataTables.css">
<script type="text/javascript" language="javascript" src="DataTables-1.10.15/media/js/jquery.js"></script>
<script type="text/javascript" language="javascript" src="DataTables-1.10.15/media/js/jquery.dataTables.js"></script>
        
 <table id="page-table" class="table table-bordered table-hover">
     <thead></thead>
     <tbody></tbody>
 </table>

引入jquery跟DataTables即可,然后再写一个table。

javascript代码

调用

new $.pageSearch({
   
	customColumns:{
   
	  pageId: pageId,// 唯一ID
	  pageFieldList:pageFieldList,
	  // dataTables的columns参数写这里
	  columns:{
   
		column1:{
   
		  width:200
		}
	  },
	  // dataTables的aoColumnDefs参数写这里
	  aoColumnDefs:{
   
		column2:{
   
		  width:200,
		  mRender: function (data, type, full) {
   
			return 'custom ' + data;
		  }
		}
	  }
	},
	DataTable:{
   // 这里保留了DataTables的参数
	  data: dataList
	}
});

customColumns对象是必传的。
customColumns.pageId主要是存取数据用的,保证每一个实例的设置区分开来。
customColumns.pageFieleList是每个实例设置的数据,格式如下:

var pageFieldList = [{
   
      display: true,
      displayName: 'Column1',
      fieldName: 'column1'
}];

customColumns.columns是dataTables的columns,将原来的数组改成了对象,以data为属性名,其他属性保留。
customColumns.aoColumnsDefs跟customColumns.columns同理。

pageSearch里面的代码

!(f
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值