datatables动态添加隐藏行
来源:互联网 发布:怪物猎人3捏脸数据库 编辑:程序博客网 时间:2024/06/17 19:09
开发的是订单管理页面,要实现功能,用户查看订单列表,单击详情时从后台取到该订单内的所有商品并胴体展示在表格行内,比较实用的一个内容。
未展开前如上图。
展开后如上图。
html部分
<div class="adv-table" > <table class="table table-bordered table-striped" id="sendorder"> <thead> <tr> <th>详情</th> <th>订单号</th> <th>订单备注</th> <th>金额</th> <th>地址</th> <th>下单时间</th> <th>订单状态</th> <th>管理</th> </tr> </thead> </table> </div>js初始化datatables
var sendtable=$("#sendorder").DataTable({ order:[["5",'desc']],//按订单创建时间降序排序 autoWidth:false,//关闭自动计算列宽 searching:true, page:false, info:true, processing: true, serverSide: true, ajax:"<?php echo APP_URL_ROOT.'/order/waitsend'?>", columns:[ //定义第一列为列动态添加/隐藏的标签,点击会触发显示/隐藏列操作 { <span style="white-space:pre"></span>"class":'details-control', <span style="white-space:pre"></span>"orderable":false, <span style="white-space:pre"></span> "data":null, <span style="white-space:pre"></span> "defaultContent":'<i id="details-button" class="fa fa-chevron-circle-down fa-2x center-block" style="margin-left:5px"></i>' <span style="white-space:pre"></span> }, {data:"OID",width: "8%"}, {data:"MARK",width: "20%"}, {data:"ACTUAL",width: "8%"}, {data:"ADDRESS",width: "22%"}, {data:"STIME",width: "10%"}, {data:"STATE",width: "10%",render:function (data) { return '准备发货'; }}, {data:null,width: "20%"} ], columnDefs:[{ targets:-1, data:null, defaultContent:"<button id='tipsend' class='btn btn-info btn-xs'>安排发货</button><button id='cancelo' class='btn btn-danger btn-xs col-xs-offset-1'>取消订单</button>", } ] });
//调用行内折叠商品通用方法var a=$('#ordertable tbody');//当前table对象var b=alltable;//datatable对象getdetail(a,b);行内动态添加/隐藏js方法
function getdetail (table1,table2) {//table1为当前table对象,table2为实例化好的datatable对象 table1.on('click', 'td.details-control', function () {//对表格第一列绑定单击事件 var tr = $(this).closest('tr'); var row = table2.row( tr ); var oid=$(this).next().text(); if ( row.child.isShown() ) {//如果详情列未显示,添加一些样式 $(this).children().removeClass('fa-chevron-circle-up'); $(this).children().addClass('fa-chevron-circle-down'); row.child.hide(); tr.removeClass('shown'); } else { $(this).children().removeClass('fa-chevron-circle-down'); $(this).children().addClass('fa-chevron-circle-up'); //console.log(cache); if (cache[oid]) {//相应订单数据已存在,cache是一个全局变量,功能相当于缓存,存储订单详情内容,避免反复从服务器读取数据 row.child(cache[oid]).show();tr.addClass('shown');//console.log('cache exist'); } else{//缓存数据不存在,存储数据<span style="white-space:pre"></span>$.post("<?php echo APP_URL_ROOT.'/order/get_order_datail'?>",{OID:oid},function (data1) { row.child(data1).show(); tr.addClass('shown'); cache[oid]=data1; }); } }}); }就此大功告成,使用了ajax读取订单详情然后异步加载信息,其他的都很好理解,有兴趣的可以试一试。
0 0
- datatables动态添加隐藏行
- datatables动态添加列事件
- jquery.dataTables表格列动态显示隐藏封装(二)
- jquery.dataTables表格列动态显示隐藏封装(二)
- dataTables 添加行内操作按钮
- datatables显示隐藏列
- jquery.dataTables表格列 动态显示隐藏(加工) checkbox刷新保持不变
- jquery.datatables的动态隐藏/显示列 以及遇到的问题
- dataTables-动态绑定问题
- dataTables-动态绑定问题
- jQuery Datatables 动态列
- easyui_动态添加隐藏toolbar按钮
- DataTables.js行索引,添加行号的两种方式
- datatables添加checkbox复选框
- DataTables ajax 动态更新数据
- Datatables动态表头,动态列渲染,可用
- 在iOS虚拟键盘上添加动态隐藏按钮
- 在iOS虚拟键盘上添加动态隐藏按钮
- 关闭酷狗右下角的弹窗
- 介绍Java中的内存泄漏
- Oracle 10g Audit(审计) --- 记录登录用户在Oracle中的所有操作
- OJ1069
- 摄像机标定--矫正畸变
- datatables动态添加隐藏行
- 基于COM组件实现C++与Matlab的混合编程
- 翻译一篇关于OpenGL实现Billboarding技术的文章
- Eclipse Memory Analyzer
- c++中怎样将字符数组转化成字符串变量...?
- 在cmd中运行java程序出错
- 如何运用反向思维解决问题?
- serializable接口以及关键字 transient
- Objective-C中循环引用的问题 深入剖析实用版