当前位置 : 主页 > 网络编程 > JavaScript >

jQuery Datatables 动态列+跨列合并实现代码

来源:互联网 收集:自由互联 发布时间:2021-04-05
有时候需要用到 html input type="hidden" name="thead_key" id="thead_key" value="php if(isset($thead_key)):php echo $thead_key;php endif;"input type="hidden" name="thead_num" id="thead_num" value="php if(isset($thead_num)):php echo $th

有时候需要用到

html

<input type="hidden" name="thead_key" id="thead_key" value="<?php if(isset($thead_key)):?><?php echo $thead_key;?><?php endif;?>">
<input type="hidden" name="thead_num" id="thead_num" value="<?php if(isset($thead_num)):?><?php echo $thead_num;?><?php endif;?>">

 

<table class="table text-nowrap table-striped table-bordered table-hover dataTables_list">
  <thead>
    <tr>
      <th rowspan="2"><div align="center">备注明细</div></th>
      <?php if(isset($thead_arr)):?>
      <th colspan="<?php echo count($thead_arr);?>"><div align="center">校区</div></th>
      <?php endif;?>
    </tr>
    <?php if(isset($thead_arr)):?>
    <?php foreach($thead_arr as $val):?>
    <th><div align="center"><?php echo $val;?></div></th>
    <?php endforeach;?>
    <?php endif;?>
  </thead>
</table>

js代码基于jquery

var oTable = null;
  var initTable = function()
  {
    var thead_key = $("#thead_key").val();
    var thead_num = $("#thead_num").val();

    thead_key = thead_key.split(',');

    var column_names = new Array();
    for(var i=0;i<=thead_num;i++)
    {
      column_names.push({"className":"text-c","sDefaultContent": ''})
    }

    oTable = $(".dataTables_list").dataTable({
      "sPaginationType": "full_numbers",
      "bLengthChange":true,
      "bFilter": false,//搜索栏
      "bProcessing": false,
      "bPaginate": true,
      "bServerSide": true,
      "bSort": false, //排序功能
      //"iDisplayLength":parseInt("{:config('admin_page_size')}"),
      "bAutoWidth": false,
      "sAjaxSource": "{:url('edu_report/ajax_school_group_product_list')}",
      "aoColumns": column_names,//封装好的数组

    //给行赋值
      "fnRowCallback": function(nRow, aData, iDisplayIndex)
      {
        $('td:eq(0)', nRow).html(aData.memo);

        $.each(thead_key, function(i, args)
        {
          $('td:eq('+(i+1)+')', nRow).html(aData["memo_cnt_"+args]);
        })
      },
    });
  }

效果图:

主要是参考思路与想法,具体的就介绍到这了,如果有帮助希望以后多多支持易盾网络。

网友评论