DataTables row.child未显示内容

时间:2018-10-01 18:04:40

标签: javascript jquery datatables

所以我一直在使用DataTables,现在尝试使用它的row.child功能在展开时在父行的子行中显示一些数据。

但是,当我展开行时,没有数据出现。

这是我的代码。

<table id="dashNumTable" class="display table dashNumTable" style="width:100%">
                  <thead>
                      <tr>
                        <th></th>
                        <th><label class='control-label'>Dash </label></th>
                        <th><label class='control-label'>Wafer</label></th>
                        <th><label class='control-label'> Process</label></th>
                        <th><label class='control-label'>HGA </label></th>
                        <th><label class='control-label'> Description</label></th>
                        <th><label class='control-label'>TX</label></th>
                        <th><label class='control-label'>TR</label></th>
                        <th><label class='control-label'>Spec</label></th>
                      </tr>
                  </thead>
                    <tbody id="NGInsert">


                    </tbody>                 
              </table>

这是我的JS。我通过返回tbody的ajax在JSON中动态获取行。

for(var i = 0; i< gridValues.length; i++){
                var obj = gridValues[i];
                //
                //generate grid here based on values received as gridValues
                var initial = "<tr>";
                var finalReturn = "";
                var end = "</tr>";
                var middleContent = "";

                //
                middleContent += "<td  class='details-control'></td>"
                middleContent += "<td>"+obj.DIGIT+"</td>";
                middleContent += "<td>"+obj.W+"</td>";
                middleContent += "<td>"+obj.S+"</td>";
                middleContent += "<td>"+obj.H+"</td>";
                middleContent += "<td>"+obj.AW+"</td>";
                middleContent += "<td>"+obj.SAA+"</td>";
                middleContent += "<td>"+obj.FDS+"</td>";
                middleContent += "<td>"+obj.DDS+"</td>";

                //  ..generate final content now
                finalReturn= initial+middleContent+end;

                //push to table now
                $("#NGInsert").append(finalReturn);
                //end
}//end loop



function format () {
    // `d` is the original data object for the row
    subTableHeader = '<table cellpadding="0" cellspacing="0" class="innerDataTbl">'+
        '<tr class="shown">'+
            '<th>Dash No.</th>'+
            '<th>Heads</th>'+
            '<th>Col 3</th>'+
            '<th>Col 4</th>'+
            '<th>Col 5</th>'+
            '<th>Col 6</th>'+
            '<th>Col 1</th>'+
            '<th>Col 2</th>'+
            '<th>Col 3</th>'+
            '<th>Col 4</th>'+
            '<th>Col 5</th>'+
            '<th>Col 6</th>'+
        '</tr>'+
        '<tr>'+
            '<td>ON0, ON1</td>'+
            '<td>Up, Dn</td>'+
            '<td><input type="checkbox"/></td>'+
            '<td><input type="checkbox"/></td>'+
            '<td><input type="checkbox"/></td>'+
            '<td><input type="checkbox"/></td>'+
            '<td><input type="checkbox"/></td>'+
            '<td><input type="checkbox"/></td>'+
            '<td><input type="checkbox"/></td>'+
            '<td><input type="checkbox"/></td>'+
            '<td><input type="checkbox"/></td>'+
            '<td><input type="checkbox"/></td>'+
            '<td><input type="checkbox"/></td>'+
            '<td><input type="checkbox"/></td>'+
            '<td><input type="checkbox"/></td>'+
            '<td><input type="checkbox"/></td>'+
            '<td><input type="checkbox"/></td>'+
          '</tr>'+

    '</table>';
}


var table = $('#dashNumTable').DataTable();



// Add event listener for opening and closing details
    $('#dashNumTable tbody').on('click', 'td.details-control', function () {
        var tr = $(this).closest('tr');
        var row = table.row( tr );

        if ( row.child.isShown() ) {
            // This row is already open - close it
            row.child.hide();
            tr.removeClass('shown');
        }
        else {
            // Open this row
            row.child( format(row.data()) ).show();
            tr.addClass('shown');
        }
    } );

我在这里做错了什么?任何帮助将不胜感激。

0 个答案:

没有答案