Kolomfilter werkt niet met rij groepering

stemmen
8

Toen ik integreren jQuery DataTables kolom filter en rij groepering , wordt jQuery DataTables kolom filter werkt niet.

Ik probeerde de demo , maar het lijkt in de demo kolom filter ook niet werkt.

De vraag is gesteld op 24/09/2015 om 04:40
user
In andere talen...                            


1 antwoorden

stemmen
1

OPLOSSING

Plug-ins Row Groepering samen met Column Filtering niet meer worden ontwikkeld, zou ik niet aanraden het gebruik ervan. Gebruik DataTables opties en API methoden om rij groepering en individuele zoeken kolom uit te voeren, zoals weergegeven in Row groepering voorbeeld en individuele kolom zoeken voorbeeld .

// Setup - add a text input to each footer cell
$('#example tfoot th').each( function () {
    var title = $('#example thead th').eq( $(this).index() ).text();
    $(this).html( '<input type="text" placeholder="Search '+title+'" />' );
} );

// DataTable
var table = $('#example').DataTable({
    "order": [[2, 'asc']],
    "drawCallback": function (settings){
        var api = this.api();

        // Zero-based index of the column for row grouping
        var col_name = 2;

        // If ordered by column containing names
        if (api.order()[0][0] === col_name) {
            var rows = api.rows({ page: 'current' }).nodes();
            var group_last = null;

            api.column(col_name, { page: 'current' }).data().each(function (name, index){
                var group = name;

                if (group_last !== group) {
                    $(rows).eq(index).before(
                        '<tr class="group"><td colspan="6">' + group + '</td></tr>'
                    );

                    group_last = group;
                }
            });
        }
    }
});

// Apply the search
table.columns().every( function () {
    var that = this;

    $( 'input', this.footer() ).on( 'keyup change', function () {
        if ( that.search() !== this.value ) {
            that
                .search( this.value )
                .draw();
        }
    } );
} );    

DEMO

Zie dit jsFiddle voor code en demonstratie.

antwoordde op 24/09/2015 om 12:14
bron van user

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more