java中html table垂直表格页面显示列名和数据不全_工作中一些极其常见的需求(一)...-程序员宅基地

技术标签: java中html table垂直表格页面显示数据不全  java中html table垂直表格页面显示列名和数据不全  

将数据以表格形式展示网页

工作中,有时候可能老板提个需求,用网页做个简单的数据展示功能,这时候,就需要用到一些web框架和前端知识来解决,这里web后端不是我们的重点,你用Python 的Django框架也好,用Flask框架也好,或者其他语言的后端程序也行,你只需要返回前端表格需要的数据结构即可

比如看下图,这是我用DataTable表格框架,通过简单构造的数据,在网页展现的表格,基本能满足最常见的数据页面展示和分页功能,当然具体表格框架的功能比展示的功能强大的多,下面简单介绍该表格框架的基本用法

30514b7f54673074b5f63a9dc0673a34.png

1、前端DataTable表格框架

说到前端框架,我一直很建议不管是做爬虫,还是做数据分析,还是其他方面,如果工作不涉及web方面的知识,最好自己也能会一种web框架,不一定让你很精通,但是你要知道其工作原理,能够搭建简单的web界面,因为工作时不时的就会有需求,让做web方面的一些东西,尤其是中小型公司那些招一个人还想让你什么都会,这样一方面也是对自己能力的提高,增加就业竞争力,另一方面,web应用五花八门,我们所做的爬虫、数据分析,机器学习深度学习,很多情况下我们的东西是要展现给前端用户来看,了解熟悉web机制,将会极大补充你的知识体系,甚至像很多js反爬,如果不懂这些前端知识,去处理反爬也是头大,所以不管从哪个方面来说,掌握一门后端web框架和前端知识都是很有必要的。

用DataTable表格框架,该框架是基于JQuery的一款表格框架

引入文件我这里用了2个css,3个js,分别是

bootstrap.min.css、dataTable.bootstrap.css、

jquery.js 、jquery.dataTable.js、dataTales.bootstrap.js

因为表格基于jquery,必须引入jquery.js,其他的涉及bootstrap的架包是因为为了让界面更加美观,引入这5个文件,做表格页面显示样式上基本不会出问题

<head>
   <meta charset="UTF-8">
   <title>datatable例子</title>
   <!--第一步:引入Javascript / CSS (CDN)-->

   <!--或者下载到本地,下面有下载地址-->
   <!-- DataTables CSS -->
   <link rel="stylesheet" type="text/css" href="http://netdna.bootstrapcdn.com/bootstrap/3.0.3/css/bootstrap.min.css">
   <link rel="stylesheet" type="text/css" href="media/css/dataTables.bootstrap.css">
   <!-- jQuery -->
   <script type="text/javascript" charset="utf8" src="media/js/jquery.js"></script>
   <!-- DataTables -->
   <script type="text/javascript" charset="utf8" src="media/js/jquery.dataTables.js"></script>
   <script type="text/javascript" charset="utf8" src="media/js/dataTables.bootstrap.js"></script>
</head>

2、数据格式[{},{},{}.....]

数据格式还是简单构造成我们常见的数据类型,表格列名分别为【姓名,年龄,城市】,Python中的说法是列表嵌套字典结构,但是在前端这种说法不对,明白意思即可。表格框架支持的数据也支持其他类型的数据结构,具体可以看API,如果数据是由后端返回的话,在返回的时候在后端构造成此类数据形式返回前端

var data=[
               {"name":"AA","age":"19","city":"北京"},
               {"name":"BB","age":"20","city":"上海"},
               {"name":"CC","age":"21","city":"广州"},
               {"name":"DD","age":"19","city":"深圳"},
               {"name":"EE","age":"20","city":"武汉"},
               {"name":"FF","age":"21","city":"长沙"},
               {"name":"GG","age":"19","city":"郑州"},
               {"name":"HH","age":"20","city":"南昌"},
               {"name":"JJ","age":"21","city":"西安"},
               {"name":"KK","age":"19","city":"南京"},
               {"name":"LL","age":"20","city":"苏州"},
               {"name":"MM","age":"21","city":"杭州"},
           ];

3、HTML布局

Html中主要就是构造table盒子,class都是控制样式的<thead>部分为构造表头第一行的列名字,我这里表头按照数据已知固定来处理,直接写死了,如果数据具有不确定性也就是我们不知道每列是什么名字,可以通过后端返回数据根据js写几行代码动态构造表头

<body>
<div class="box">
   <table id="table_id_example" class="table table-striped table-bordered table-hover" cellspacing="0" width="100%">
   <thead>
       <tr>
           <th>姓名</th>
           <th>年龄</th>
           <th>城市</th>
       </tr>
   </thead>
</table>
</div>

</body>

4、CSS样式

Css部分没什么可说的,我就简单让表头底色换了一个蓝色底色,表头文字变成白色,并且让表头和表格内容文字居中显示

<style>
   .box{width:1000px;margin:100px auto;}
   #table_id_example thead{background:#1c91db;color:white;}
   #table_id_example thead tr th,tbody{text-align: center;}
</style>

5、Js部分

Js代码也没多少行,除去刚才我们构造的data数据,剩下的就是表格展示代码,可以看到基本的展示很简单,

$('#table_id_example').DataTable({})封装的很整洁,一些基本的展示都是通过简单配置即可实现

配置:

“bSort”:false 禁止排序

"data":data 配置数据

"columns": 配置列数据

[{"data":"name"}{ "data": 'age' },{ "data": 'city' }]

<script>
   $(document).ready( function () {
       var data=[
               {"name":"AA","age":"19","city":"北京"},
               {"name":"BB","age":"20","city":"上海"},
               {"name":"CC","age":"21","city":"广州"},
               {"name":"DD","age":"19","city":"深圳"},
               {"name":"EE","age":"20","city":"武汉"},
               {"name":"FF","age":"21","city":"长沙"},
               {"name":"GG","age":"19","city":"郑州"},
               {"name":"HH","age":"20","city":"南昌"},
               {"name":"JJ","age":"21","city":"西安"},
               {"name":"KK","age":"19","city":"南京"},
               {"name":"LL","age":"20","city":"苏州"},
               {"name":"MM","age":"21","city":"杭州"},
           ];

       $('#table_id_example').DataTable({
           "bSort": false, //排序功能
           "data":data,
           "columns": [
               { "data": 'name' },
               { "data": 'age' },
               { "data": 'city' },
           ]  
       });

   } );

</script>

最后,我们浏览器打开html即可像文章开头那样显示成功

e55edc4e916932ea35d59c420a5b5009.png

上面所说的是我们在html中将表头写死的情况,如果在html中我们不将表头写死,而是随着后端返回的数据变化,表头也随之变化,也把代码奉上

1、HTML中tr标签里面的th都已经删除

<body>
<div class="box">
   <table id="table_id_example" class="table table-striped table-bordered table-hover" cellspacing="0" width="100%">
   <thead>
       <tr>

       </tr>
   </thead>
</table>
</div>
</body>

2、Js中构造了一个colums,这个数组可以由后端返回表头列表,然后遍历,将th写入tr标签中

columns = ["姓名2","年龄2","城市2"]
vartable_tr = $("#table_id_example thead tr");
       $.each(columns,function(i, n){
           table_tr.append('<th>'+ n +'</th>');
       });

下方也成功显示

8e2368bbd8a12135c8cd783fed98add1.png

最后介绍一些简单的配置

控制左上角每页显示条数,true可以自定义
bLengthChange: true,
aLengthMenu: [1, 2, 3, 4, 5, 10],
控制是否显示搜索框
searching: false

下方是最近做的Python学习网站用到的一些配置,可以参考,值得一提的是,有时候我们需要操作我们表格中的数据,绑定一些事件,DataTable框架也给我们提供了很方便的方法,下面方法中用到render,在render中可以定义函数,传入一些参数,进行调用,极大丰富了表格功能

$('#table_id_example').DataTable({
   searching: false,
   bLengthChange: false,
   "sInfo": "从 _START_ 到 _END_ /共_TOTAL_条数据",
   "bSort": false, //排序功能
   "bInfo": true,//页脚信息
   "language": {
       "info": "",  //表格左下角显示的文字
       "paginate": {
              "previous": "上一页",
              "next": "下一页"
                  }
                },
       destroy: true, // 去掉重新加载数据的弹窗问题
       "data": train_data,
       "columns": [
                {data: 'name'},
                {
                  data: 'url',
                  render: function (data, type, row, meta) { return '<a onclick="userInfo('' + meta.row + '')">' + data + '</a>';}
                },
        ]
});
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_39534149/article/details/110741458

智能推荐

c# 调用c++ lib静态库_c#调用lib-程序员宅基地

文章浏览阅读2w次,点赞7次,收藏51次。四个步骤1.创建C++ Win32项目动态库dll 2.在Win32项目动态库中添加 外部依赖项 lib头文件和lib库3.导出C接口4.c#调用c++动态库开始你的表演...①创建一个空白的解决方案,在解决方案中添加 Visual C++ , Win32 项目空白解决方案的创建:添加Visual C++ , Win32 项目这......_c#调用lib

deepin/ubuntu安装苹方字体-程序员宅基地

文章浏览阅读4.6k次。苹方字体是苹果系统上的黑体,挺好看的。注重颜值的网站都会使用,例如知乎:font-family: -apple-system, BlinkMacSystemFont, Helvetica Neue, PingFang SC, Microsoft YaHei, Source Han Sans SC, Noto Sans CJK SC, W..._ubuntu pingfang

html表单常见操作汇总_html表单的处理程序有那些-程序员宅基地

文章浏览阅读159次。表单表单概述表单标签表单域按钮控件demo表单标签表单标签基本语法结构<form action="处理数据程序的url地址“ method=”get|post“ name="表单名称”></form><!--action,当提交表单时,向何处发送表单中的数据,地址可以是相对地址也可以是绝对地址--><!--method将表单中的数据传送给服务器处理,get方式直接显示在url地址中,数据可以被缓存,且长度有限制;而post方式数据隐藏传输,_html表单的处理程序有那些

PHP设置谷歌验证器(Google Authenticator)实现操作二步验证_php otp 验证器-程序员宅基地

文章浏览阅读1.2k次。使用说明:开启Google的登陆二步验证(即Google Authenticator服务)后用户登陆时需要输入额外由手机客户端生成的一次性密码。实现Google Authenticator功能需要服务器端和客户端的支持。服务器端负责密钥的生成、验证一次性密码是否正确。客户端记录密钥后生成一次性密码。下载谷歌验证类库文件放到项目合适位置(我这边放在项目Vender下面)https://github.com/PHPGangsta/GoogleAuthenticatorPHP代码示例://引入谷_php otp 验证器

【Python】matplotlib.plot画图横坐标混乱及间隔处理_matplotlib更改横轴间距-程序员宅基地

文章浏览阅读4.3k次,点赞5次,收藏11次。matplotlib.plot画图横坐标混乱及间隔处理_matplotlib更改横轴间距

docker — 容器存储_docker 保存容器-程序员宅基地

文章浏览阅读2.2k次。①Storage driver 处理各镜像层及容器层的处理细节,实现了多层数据的堆叠,为用户 提供了多层数据合并后的统一视图②所有 Storage driver 都使用可堆叠图像层和写时复制(CoW)策略③docker info 命令可查看当系统上的 storage driver主要用于测试目的,不建议用于生成环境。_docker 保存容器

随便推点

网络拓扑结构_网络拓扑csdn-程序员宅基地

文章浏览阅读834次,点赞27次,收藏13次。网络拓扑结构是指计算机网络中各组件(如计算机、服务器、打印机、路由器、交换机等设备)及其连接线路在物理布局或逻辑构型上的排列形式。这种布局不仅描述了设备间的实际物理连接方式,也决定了数据在网络中流动的路径和方式。不同的网络拓扑结构影响着网络的性能、可靠性、可扩展性及管理维护的难易程度。_网络拓扑csdn

JS重写Date函数,兼容IOS系统_date.prototype 将所有 ios-程序员宅基地

文章浏览阅读1.8k次,点赞5次,收藏8次。IOS系统Date的坑要创建一个指定时间的new Date对象时,通常的做法是:new Date("2020-09-21 11:11:00")这行代码在 PC 端和安卓端都是正常的,而在 iOS 端则会提示 Invalid Date 无效日期。在IOS年月日中间的横岗许换成斜杠,也就是new Date("2020/09/21 11:11:00")通常为了兼容IOS的这个坑,需要做一些额外的特殊处理,笔者在开发的时候经常会忘了兼容IOS系统。所以就想试着重写Date函数,一劳永逸,避免每次ne_date.prototype 将所有 ios

如何将EXCEL表导入plsql数据库中-程序员宅基地

文章浏览阅读5.3k次。方法一:用PLSQL Developer工具。 1 在PLSQL Developer的sql window里输入select * from test for update; 2 按F8执行 3 打开锁, 再按一下加号. 鼠标点到第一列的列头,使全列成选中状态,然后粘贴,最后commit提交即可。(前提..._excel导入pl/sql

Git常用命令速查手册-程序员宅基地

文章浏览阅读83次。Git常用命令速查手册1、初始化仓库git init2、将文件添加到仓库git add 文件名 # 将工作区的某个文件添加到暂存区 git add -u # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,不处理untracked的文件git add -A # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,包括untracked的文件...

分享119个ASP.NET源码总有一个是你想要的_千博二手车源码v2023 build 1120-程序员宅基地

文章浏览阅读202次。分享119个ASP.NET源码总有一个是你想要的_千博二手车源码v2023 build 1120

【C++缺省函数】 空类默认产生的6个类成员函数_空类默认产生哪些类成员函数-程序员宅基地

文章浏览阅读1.8k次。版权声明:转载请注明出处 http://blog.csdn.net/irean_lau。目录(?)[+]1、缺省构造函数。2、缺省拷贝构造函数。3、 缺省析构函数。4、缺省赋值运算符。5、缺省取址运算符。6、 缺省取址运算符 const。[cpp] view plain copy_空类默认产生哪些类成员函数

推荐文章

热门文章

相关标签