使用不同的脚本文件重新初始化数据表

时间:2017-01-17 12:01:38

标签: javascript jquery datatables

我有多个数据表,并在他们有类似设置的地方创建了一个js。我使用所有表的类来代替表的每个id。

如果我想为每个有差异的数据表创建一个特定的jquery,那么什么不起作用。 某些列不需要选择,而其他列则需要。

所以我在每个表中都使用了Id,但它表示无法重新初始化。 我也尝试使用bdestroy :true,但其中一个正在被禁用

这是我使用课程的统一脚本:

<script type="text/javascript">         
$(document).ready(function () {
$('.datatables').dataTable(     
    {        
       'initComplete': function(settings){
      var api = new $.fn.dataTable.Api(settings);

      api.columns().header().each(function(column){
         if($(column).text() === 'Company'){
            $(column).text("Apple");
         }
          if($(column).text() === 'Note'){
            $(column).text("Description");
         } }); },
     "pagingType": "full_numbers",
             "oSearch": {"bSmart": false},
  dom: '<"coll"B><"search"f><"table"t><"info" i><"list"l><"pag"p>',

buttons: [{          
        extend: 'collection',
        text: 'Esporti',        
  buttons: [ {
            extend: 'excel',
            text: 'Excel',
            exportOptions: {
                modifier: {
                    selected: true
                            }}},{
            extend: 'pdf',
            text: 'PDF',
            exportOptions: {
                modifier: {
                    selected: true
                            }}} ]}, ]
        });  });
</script>

以下是每个页面的脚本,其中我使用每个表的表ID:

<script>
$(document).ready(function () { 
$('#circuiti_table').dataTable({
      select: {
        style: 'multi',
        selector: ' tr>td:nth-child(4), tr>td:nth-child(5), tr>td:nth- child(6), tr>td:nth-child(7)'
      } });  }); 
    </script>

提前致谢

1 个答案:

答案 0 :(得分:0)

我建议采用不同的方法,而不是使用类名组合指定常用选项和ID来指定唯一选项。

使用$.fn.dataTable.defaults对象为所有表指定公共选项。然后在每个页面上,使用ID初始化表,但仅包括不同的选项。

例如:

// jQuery DataTables: Common settings
$.extend( true, $.fn.dataTable.defaults, {
    "searching": false,
    "ordering": false
} );

// jQuery DataTables: Individual table
$(document).ready(function() {
    $('#example').DataTable();
} );

有关详细信息,请参阅Setting defaults