zoukankan      html  css  js  c++  java
  • datatables表格中 嵌套表格问题

    $('#relevanceOrderTable').on('click', 'td.details-control', function (e) {
      $('#relevanceOrderTable .childTable').remove();
      var saleId=$(this).children('span').data('saleid');
      if(saleId=='--'||saleId==undefined||saleId==null){
        saleId='';
      }
      var table=$('#relevanceOrderTable').DataTable();
      childIsShown(this,table,saleId);
      e.stopPropagation();
      $(this).unbind("click"); //移除click
      return false;
    });

    以上是比如点击某一单元格,那么会下拉出来一个表格(也就是动态生成一个新的表格在其父级(tr)下面)

    此时调用childIsShown(this,table,saleId);  this指当前点击的td,table就是$(id).DataTable();saleId它是额外的参数,看自己需求

    function childIsShown(that,table,saleId){
    var tr = $(that).closest('tr');  //获取点击时的td的父级tr,这个方法closest含义还不是很清楚
    var row = table.row( tr );//传给table 
    if(row.child.isShown()){  //判断tr是否是显示状态
    //This row is already open - close it
    row.child.hide();
    tr.removeClass('shown');


    }else{
    tr.addClass('shown');

    // row.child(formatTable('/api/main/queryData?resourceName=host&metricName=host_order_flow_list?saleId='+saleId)).show();
    // row.child(formatTable('/styles/js/mock_data/chakan.txt')).show();
    var zjp={};
    var zjpTotal=0;
    $.ajax({
    // url:'/styles/js/mock_data/chakan.txt',
    url:'/api/main/queryData?resourceName=host&metricName=host_order_flow_list&saleId='+saleId+'&pageNo=1&pageSize=10',
    data : {

    },
    async: false,
    dataType:"json",
    success:function(responseData){
    if (!responseData.success || responseData.data == null) {

    zjp={};
    zjpTotal=0;
    }
    if(responseData.code==200){
    if(responseData.data.length>0){
    var data=responseData.data;
    zjp=data;
    zjpTotal=responseData.total;
    // console.log('bbb');
    }else{
    zjp={};
    zjpTotal=0;
    }
    }else{
    zjp={};
    zjpTotal=0;
    }//200
    }//succ

    });//ajax end

    row.child(formatTable(zjp,zjpTotal,saleId)).show();//此方法是 动态生成表格的方法(也可以动态生成其他业务内容,不一定非是表格才行),

    //formatTable它传参的时候   对于是否可以传URl这个目前还没有验证,因为之前传url时   出现了bug不知道是不是它引起的



    }

    }

    function formatTable(zjp,zjpTotal,saleId) {
    var trList='';
    var page='';
    if(!$.isEmptyObject(zjp)){
    $.each(zjp,function(i,v){

    trList+='<tr>'+
    '<td>'+(v.orderId==null?'--':v.orderId)+'</td>'+
    '<td>'+(v.bizNo==null?'--':v.bizNo)+'</td>'+
    '<td>'+(v.traceId==null?'--':v.traceId)+'</td>'+
    '<td>'+(v.productionName==null?'--':v.productionName)+'</td>'+
    '<td>'+(v.action==null?'--':v.action)+'</td>'+
    '<td>'+(v.bizContent==null?'--':v.bizContent)+'</td>'+
    '<td>'+(v.bizStatus==null?'--':v.bizStatus)+'</td>'+
    '<td>'+(v.valid==null?'--':v.valid==true?"是":v.valid==false?"否":v.valid)+'</td>'+
    '<td>'+(v.shouldPay==null?'--':v.shouldPay)+'</td>'+
    '<td>'+(v.realPay==null?'--':v.realPay)+'</td>'+
    '<td>'+(v.buyPeriodNum==null?'--':v.buyPeriodNum)+'</td>'+
    '<td>'+(v.orderDate==null?'--':new Date(v.orderDate).format('yyyy-MM-dd HH:mm:ss'))+'</td>'+
    '<td>'+(v.orderSuccessDate==null?'--':new Date(v.orderSuccessDate).format('yyyy-MM-dd HH:mm:ss'))+'</td>'+
    '<td>'+(v.expiredTime==null?'--':new Date(v.expiredTime).format('yyyy-MM-dd HH:mm:ss'))+'</td>'+
    '<td>'+(v.remark==null?'--':v.remark)+'</td>'+
    '</tr>'
    });
    }else{
    trList='<tr class="odd"><td valign="top" colspan="15" class="dataTables_empty">No data available in table</td></tr>';
    }

    if(zjpTotal==0){
    page='';
    }else if(zjpTotal==1){
    page='<div class="oneSelfPage" style="text-align:right;margin-top:10px;"><span class="upPage" data-saleId="'+saleId+'" data-upPage="1" style="margin-right:15px;padding:5px 10px;border:1px solid rgb(0, 193, 222);cursor:pointer;">上一页</span><span class="downPage" data-total="'+zjpTotal+'" data-saleId="'+saleId+'" data-downPage="1" style="padding:5px 10px;border:1px solid rgb(0, 193, 222);cursor:pointer;">下一页</span></div>';
    }else if(zjpTotal==2){
    page='<div class="oneSelfPage" style="text-align:right;margin-top:10px;"><span class="upPage" data-saleId="'+saleId+'" data-upPage="1" style="margin-right:15px;padding:5px 10px;border:1px solid rgb(0, 193, 222);cursor:pointer;">上一页</span><span class="downPage" data-total="'+zjpTotal+'" data-saleId="'+saleId+'" data-downPage="2" style="padding:5px 10px;border:1px solid rgb(0, 193, 222);cursor:pointer;">下一页</span></div>';
    }else{
    page='<div class="oneSelfPage" style="text-align:right;margin-top:10px;"><span class="upPage" data-saleId="'+saleId+'" data-upPage="1" style="margin-right:15px;padding:5px 10px;border:1px solid rgb(0, 193, 222);cursor:pointer;">上一页</span><span class="downPage" data-total="'+zjpTotal+'" data-saleId="'+saleId+'" data-downPage="2" style="padding:5px 10px;border:1px solid rgb(0, 193, 222);cursor:pointer;">下一页</span></div>';
    }
    // `d` is the original data object for the row
    return '<table class="childTable" cellpadding="5" cellspacing="0" border="0" style="100%;background-color:#ddd;">'+
    '<tr>'+
    '<td style="8%">订单号</td>'+
    '<td style="8%">业务编号</td>'+
    '<td style="8%">业务跟踪号</td>'+
    '<td style="8%">产品名称</td>'+
    '<td style="6%">产品行为</td>'+
    '<td style="8%">业务内容</td>'+
    '<td style="6%">业务状态</td>'+
    '<td style="6%">有效状态</td>'+
    '<td style="6%">应收款</td>'+
    '<td style="6%">实收款</td>'+
    '<td style="6%">服务期限</td>'+
    '<td style="6%">下单日</td>'+
    '<td style="6%">成功日</td>'+
    '<td style="6%">到期日</td>'+
    '<td style="6%">备注</td>'+
    '</tr>'+trList+ '</table>'+page;


    }

    一定要明白靠自己
  • 相关阅读:
    java前端学习步骤
    安装Sublime Text 3插件的方法(转自Rising的博文)
    LibSVM学习详细说明
    class 2-3 小项目练习
    class 2-2 小项目练习
    class 2-1 小项目练习
    class 1-1 python开发环境配置
    Class
    class 10 文件和异常
    class
  • 原文地址:https://www.cnblogs.com/zjpzjp/p/6775821.html
Copyright © 2011-2022 走看看