jQuery Datatable基于另一列计算列

时间:2019-04-26 10:53:13

标签: jquery datatables

渲染列时我需要访问另一列,以便我可以进行一些计算,但是我看不到如何使用jquery datatable插件执行此操作。我认为这很容易,但我不知道该方法。

 function InitAbastecimentosDataTable() {
        table = $('#tblAbastecimentos').DataTable({
            language: {
                url: '//cdn.datatables.net/plug-ins/1.10.19/i18n/Portuguese.json',
            },
            scrollY: "50vh",
            scrollCollapse: true,
            async: true,
            oLanguage: {
                sLoadingRecords: '<img src="/Images/ajax/loader.svg" />'
            },
            ajax: {
                url: '/Abastecimentos/GetAbastecimentos',
                dataSrc: ''
            },
            columns: [
                { data: 'Referencia' },
                { data: 'UAP' },
                { data: 'W01' },
                { data: 'W02' },
                { data: 'ConsumoDiarioW01' },
                { data: 'ConsumoDiarioW02' },                    
                {
                    data: 'Stock',
                    render: function (data, type, row) {

                        if (data > 0) {                                
                            return '<span class="badge badge-success">' + data + '</span>';
                        } else {
                            return '<span class="badge badge-danger">' + data + '</span>';
                        }
                    },
                },
                { data: 'ConsumoPABW01' },
                { data: 'StockMinW01' },
                { data: 'StockMaxW01' },
                { data: 'QtdAbastecimentoW01' }
            ],            
            dom: 'Bfrtip',
            lengthMenu: [
                [10, 25, 50, 100, -1],
                ['10 rows', '25 rows', '50 rows', '100 rows', 'Show all']
            ],
            buttons: [
                'pageLength',
                {
                    extend: 'copyHtml5',
                    exportOptions: { orthogonal: 'export' }
                },
                {
                    extend: 'excelHtml5',
                    exportOptions: { orthogonal: 'export' }
                },
                {
                    extend: 'pdfHtml5',
                    exportOptions: { orthogonal: 'export' }
                },
                {
                    text: '<div id=""<i class="fas fa-sync"></i>',
                    action: function (e, dt, node, config) {
                        dt.destroy();
                        InitAbastecimentosDataTable();
                    }
                }
            ],
            initComplete: function () {
                this.api().columns([1]).every(function () {
                    var column = this;
                    var select = $('<select><option value=""></option></select>')
                        .appendTo($(column.footer()).empty())
                        .on('change', function () {
                            var val = $.fn.dataTable.util.escapeRegex(
                                $(this).val()
                            );

                            column
                                .search(val ? '^' + val + '$' : '', true, false)
                                .draw();
                        });

                    column.data().unique().sort().each(function (d, j) {
                        select.append('<option value="' + d + '">' + d + '</option>')
                    });
                });
            }
        });
我想基于数据字段“ StockMinW01”和“ StockMaxW02”对它进行计算。我对此一无所获

我也尝试使用row [8],但是它给我未定义的内容。

我尝试了console.log(row),它给出了该行的所有数据。我不知道如何访问特定列

1 个答案:

答案 0 :(得分:1)

我们可以按其名称访问列。

row['StockMinW01']