2016-01-19 6 views
1

У меня проблема с отображением общей суммы некоторых столбцов в таблице данных. Одна из проблем заключается в том, что моя таблица динамически создана. Пользователь выбирает столбцы, чтобы показать, что индекс столбца не исправлен!Как добавить общую сумму столбца в datatable

Во-вторых footerCallback на добавление кода бросает ncaught TypeError: Не удается прочитать свойство 'НТФ' неопределенной ошибки

<tfoot> 
    <tr> 
    <td colspan='2'> <span style="float:right;"id ='totalcol1'></span> </td> 
    </tr> 
</tfoot> 

FooterCAllback определяется внутри вар таблицы = ('# туЬаЫе') DataTable()

"footerCallback": function (row, data, start, end, display) { 
    var api = this.api(), data; 
    $(api.column(11).footer()).html(
     api.column(11).data().reduce(function (a, b) { return a + b;}) 
    ); 
/* For second column 
    $(api.column(12).footer()).append(
     api.column(12).data().reduce(function (a, b) { return a + b;}) 
    );*/ 
}, 
.

ответ

0

Я нашел example, который выглядит, как именно то, что вы хотите сделать

$(document).ready(function() { 
    $('#example').DataTable({ 
     "footerCallback": function (row, data, start, end, display) { 
      var api = this.api(), data; 

      // Remove the formatting to get integer data for summation 
      var intVal = function (i) { 
       return typeof i === 'string' ? 
        i.replace(/[\$,]/g, '')*1 : 
        typeof i === 'number' ? 
         i : 0; 
      }; 

      // Total over all pages 
      total = api 
       .column(4) 
       .data() 
       .reduce(function (a, b) { 
        return intVal(a) + intVal(b); 
       }, 0); 

      // Total over this page 
      pageTotal = api 
       .column(4, { page: 'current'}) 
       .data() 
       .reduce(function (a, b) { 
        return intVal(a) + intVal(b); 
       }, 0); 

      // Update footer 
      $(api.column(4).footer()).html(
       '$'+pageTotal +' ($'+ total +' total)' 
      ); 
     } 
    }); 
}); 
+0

Спасибо, я пробовал это, и моя проблема заключается в том, что индекс столбца является динамическим .. Я не могу использовать 4 как показано выше, также Если некоторые поля (зарплата, налог) присутствуют только тогда, то общий нижний колонтитул строки должен быть вставлен в динамический результат. – user269867

+0

Об индексе вы можете использовать переменную вместо «4». Поэтому, когда вы меняете индекс столбца, код будет соответствовать изменению (если вы обновите значение переменной) –

+0

Вы также можете скрыть нижний колонтитул самостоятельно, если столбцы (зарплата, налог) не отображаются –

Смежные вопросы