2016-04-19 15 views
0

このhtmlファイルの主な機能は、行をクリックするたびに、その行に関連するデータの詳細テーブルを表示するはずですが、いくつかのことがありました。まず、私がデータテーブルとして作成したメインテーブルは、通常のテーブルの機能だけで、データテーブルの機能では動作しません。次に、行をクリックして詳細テーブルを表示するたびに、メインテーブルの最初の列にのみ表示されます。どんな助けもありがとう。ネストしたテーブルを持つDatatableには機能がありません

<html> 

<head> 



    <script src="https://code.jquery.com/jquery-1.12.0.min.js"></script> 
    <script src="https://cdn.datatables.net/1.10.11/js/jquery.dataTables.min.js"></script> 
    <script src="https://cdn.datatables.net/responsive/2.0.2/js/dataTables.responsive.min.js"></script> 
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script> 
    <link rel="stylesheet" href="https://cdn.datatables.net/1.10.11/css/jquery.dataTables.min.css"> 
    <link rel="stylesheet" href="https://cdn.datatables.net/responsive/2.0.2/css/responsive.dataTables.min.css"> 
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css"> 
    <link rel="icon" href="./resources/logo.jpg"> 



<script>  

    $(document).ready(function() { 

     var oTable = $('#maintable').dataTable({ 

      "aoColumnDefs": [ 
       { "bSortable": true, "aTargets": [ 0 ] } 
      ], 
      "aaSorting": [[1, 'asc']], 

      "language": { 
       "lengthMenu": "Mostrar _MENU_ datos por pagina.", 
       "zeroRecords": "Nada fue encontrado.", 
       "info": "Mostrando _PAGE_ de _PAGES_", 
       "infoEmpty": "No hay datos disponibles", 
       "infoFiltered": "(filtrado de _MAX_ datos totales)", 
       "search": "Buscar:", 
       "paginate": { 
        "first":  "Primero", 
        "last":  "Ultimo", 
        "next":  "Proximo", 
        "previous": "Previo" 
       } 
      } 


     }); 
    });  

</script> 




    <title>Consulta de facturas atrasadas</title> 

    <style type="text/css"> 
     html, #page { padding:0; margin:0;} 
     body { margin:0; padding:0; width:100%; color:#959595; font:normal 12px/2.0em Sans-Serif;} 
     h1, h2, h3, h4, h5, h6 {color:darkblue; text-align: center;} 

     #page { background:#fff;} 
     #header, #footer{ margin:0; padding:0;} 


     #logo { padding:0; width:auto; text-align: center; margin: auto;} 

     #header { background:#fff; } 
     #header-inner { margin:0 auto; padding:0;} 


     #footerblurb { background:#d3d3f9;color:blue; width: 100%;}  

     #footer { background:#fff; width: 100%;} 
     #footer-inner { margin:auto; text-align:center; padding:12px;} 
     #footer a {color:blue;text-decoration:none;} 

     #maintable { 

      text-align: center;    

     } 

     .hiddenRow { 
      padding: 0 !important; 
     } 



     #events { 
      margin-bottom: 1em; 
      padding: 1em; 
      background-color: #f6f6f6; 
      border: 1px solid #999; 
      border-radius: 3px; 
      height: 100px; 
      overflow: auto; 
     } 

     td.highlight { 
      background-color: whitesmoke !important; 
     } 

     .details-control { 


     } 

     #container { 

      width:90%; 
      margin: 0 auto; 

     } 

     #titulo { 

      margin: 0 auto; 

     } 


     div.slider { 
      display: none; 
     } 

     table.dataTable tbody td.no-padding { 
      padding: 0; 
     } 

     th { 

      text-align: center; 

     } 

     .bodycontainer { max-height: 450px; width: 100%; margin: 0; overflow-y: auto; } 


     #col-lg-6 { 
      margin: auto; 
     } 

     #formulario{ 
      margin: auto; 
      column-width: 80%; 
     } 
     .clr { clear:both; padding:0; margin:0; width:100%; font-size:0px; line-height:0px;} 

    </style> 

</head> 

<body> 

     <br> 
    <div id="page"> 
     <header id="header"> 
      <div id="header-inner"> 
       <div id="logo"> 

       </div> 

       <div id="titulo"> 
        <h2>Consulta de facturas atrasadas</h2> 
       </div> 

       <div class="clr"></div> 
      </div> 
     </header> 
     <br>  

     <div id="container"> 

     <table id="maintable" class="row-border hover order-column display table table-striped" cellspacing="0" width="100%" style="border-collapse:collapse;"> 
      <thead> 
       <tr> 

        <th>Codigo</th> 
        <th>Nombre</th> 
        <th>Propietario</th> 
        <th>Direccion</th> 
        <th>Ciudad</th> 
        <th>Sector</th> 
        <th>Cedula</th> 
        <th>Tel. 1</th> 
        <th>Tel. 2</th> 
        <th>Celular</th> 

       </tr> 
      </thead> 


      <tbody> 

       <tr data-toggle="collapse" data-target="#1" class="accordion-toggle"> 

        <td>Codigo</td> 
        <td>2011/02/02</td> 
        <td>Propietario</td> 
        <td>Direccion</td> 
        <td>Ciudad</td> 
        <td>Sector</td> 
        <td>Cedula</td> 
        <td>Tel. 1</td> 
        <td>Tel. 2</td> 
        <td>Celular</td> 

       </tr> 

        <tr> 

         <td class="hiddenRow"><div class="accordian-body collapse" id="1"> 
          <table id="a" class="table table-striped" style="width:100%; text-align: center"> 

            <thead> 

            <tr> 
             <th>Factura</th> 
             <th>Fecha</th> 
             <th>Dias</th> 
             <th>Monto</th> 
             <th>Pendiente</th> 
             <th>Vendedor</th> 
            </tr> 


            </thead> 

            <tbody> 

            <tr> 
             <td>Factura</td> 
             <td>2015/04/15</td> 
             <td>Factura</td> 
             <td>Factura</td> 
             <td>Factura</td> 
             <td>Factura</td> 
            </tr> 

            <tr> 
             <td>Factura</td> 
             <td>2011/04/15</td> 
             <td>Factura</td> 
             <td>Factura</td> 
             <td>Factura</td> 
             <td>Factura</td> 
            </tr> 

            </tbody> 

          </table> 
         </div> 
         </td> 

        </tr> 




       <tr data-toggle="collapse" data-target="#2" class="accordion-toggle"> 

        <td>Codigo</td> 
        <td>Nombre</td> 
        <td>Propietario</td> 
        <td>Direccion</td> 
        <td>Ciudad</td> 
        <td>Sector</td> 
        <td>Cedula</td> 
        <td>Tel. 1</td> 
        <td>Tel. 2</td> 
        <td>Celular</td> 

       </tr> 

        <tr> 

         <td class="hiddenRow"><div class="accordian-body collapse" id="2"> 
          <table id="b" class="table table-striped" style="width:100%; text-align: center"> 

            <thead> 

            <tr> 
             <th>Factura</th> 
             <th>Fecha</th> 
             <th>Dias</th> 
             <th>Monto</th> 
             <th>Pendiente</th> 
             <th>Vendedor</th> 
            </tr> 


            </thead> 

            <tbody> 

            <tr> 
             <td>Factura</td> 
             <td>2012/04/15</td> 
             <td>Factura</td> 
             <td>Factura</td> 
             <td>Factura</td> 
             <td>Factura</td> 
            </tr> 

            <tr> 
             <td>Factura</td> 
             <td>2011/04/15</td> 
             <td>Factura</td> 
             <td>Factura</td> 
             <td>Factura</td> 
             <td>Factura</td> 
            </tr> 

            </tbody> 

          </table> 
         </div> 
         </td> 

        </tr> 

       <tr> 

        <td>Codigo</td> 
        <td>Nombre</td> 
        <td>Propietario</td> 
        <td>Direccion</td> 
        <td>Ciudad</td> 
        <td>Sector</td> 
        <td>Cedula</td> 
        <td>Tel. 1</td> 
        <td>Tel. 2</td> 
        <td>Celular</td> 

       </tr> 
       <tr> 

        <td>Codigo</td> 
        <td>2011/02/02</td> 
        <td>Propietario</td> 
        <td>Direccion</td> 
        <td>Ciudad</td> 
        <td>Sector</td> 
        <td>Cedula</td> 
        <td>Tel. 1</td> 
        <td>Tel. 2</td> 
        <td>Celular</td> 

       </tr> 
       <tr> 

        <td>Codigo</td> 
        <td>Nombre</td> 
        <td>Propietario</td> 
        <td>Direccion</td> 
        <td>Ciudad</td> 
        <td>Sector</td> 
        <td>Cedula</td> 
        <td>Tel. 1</td> 
        <td>Tel. 2</td> 
        <td>Celular</td> 

       </tr> 
      </tbody> 




     </table>  


     </div> 

     <script> 
      var table = document.getElementById("a"); 
      for(var i = 0; i < table.rows.length; i ++) { 
      var d = new Date(table.rows[i].cells[1].innerHTML).getTime(); 
      var difference = new Date().getTime(); 
      console.log(((difference - d)/86400000) > 100); 
      if(((difference - d)/86400000) > 1000) 
       table.rows[i].style.background = "red"; 
      } 
     </script> 




       <div class="clr"></div> 



     <footer id="footer"> 

      <div id="footerblurb"> 
       <br> 
      </div> 

      <div id="footer-inner"> 

       <div class="clr"></div> 
      </div> 

     </footer> 

    </div> 

</body> 

+0

実例を提供します。それは読んで、編集し、テストするのは面倒です。 stacksnippets(stackoverflowのエディター内)またはhttp://jsfiddle.netのような外部サービスを使用して作業フィーリングを作成することができます。続きを読む:http://stackoverflow.com/help/how-to-ask || ** http://stackoverflow.com/help/mcve** –

+0

ここに行きます:https://jsfiddle.net/ocrhtupj/ – AdrianJG

+1

ネストしたテーブルは、決して追加していないので機能がありません。あなたは、データテーブルのドキュメントに行き、開いているイベントリスナーを見て、行を開いて新しいデータテーブルを初期化する必要があります。たぶんこれはクレイジーですが、私はGoogleで検索し、それは私に60.000の結果を示しています。 https://www.google.es/search?q=js+datatable+nested+tables。 –

答えて

1

あなたのテーブルには、適切な構造を持っていない、ththeadの要素とtbodytd要素数の数との間に一致がなければなりません。訂正された例https://jsfiddle.net/ocrhtupj/1/ですが、行の詳細が正しく表示されません。

詳細はjQuery DataTablesプラグインでテーブルを正しく実装するにはChild rowsを参照してください。

+0

ありがとうございました!!!これでdatatable機能が動作し、​​にcolspan属性が追加され、全幅が表示されます。行の詳細は表示される場所は表示されませんが、私はそれを調べます。 – AdrianJG

+0

@AdrianGonzalez、jQuery DataTablesはテーブル列の 'colspan'をサポートしていないことに注意してください。そのため、代わりにドキュメントに従って実装することを提案しました。 –

+0

よろしくお願いいたします。私はそれを調べます。 – AdrianJG

関連する問題