Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Edgard Hufelande

Datatables - Ordenar por imagem

Recommended Posts


Galera, tenho o seguinte código do Datatables com Ajax.
Tudo funcionando beleza, única coisa que preciso é que ordene a coluna com
imagem...

 

 

Tentei fazer algo referente ao que andei procurando na internet, mas sem resultado...

Alguém poderia me dar uma luz? rs

 

$(document).ready(function() {
            
        jQuery.fn.dataTableExt.afnSortData['dom-img'] = function  ( oSettings, iColumn )
        {
           var aData = [];
           $( 'td:eq('+iColumn+') img', oSettings.oApi._fnGetTrNodes(oSettings) ).each( function () {
               aData.push( this.alt );
           } );
           return aData;
        }
               
            var oTable = $('.table').dataTable( {
                "bProcessing": true,
                "sAjaxSource": "/ranking/oficial",
                "sAjaxDataProp": "aaData",
                "aoColumns": [
                    { "mData": "Nome" },
                    { "mData": "Level", "sType": "dom-img" }, // Resultado com uma imagem <img src="link/imagem.png" alt="level_em_numero" />
                    { "mData": "arg1" },
                    { "mData": "arg2" },
                    { "mData": "arg3" }
                ]
            } );
        } );

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você precisa adicionar um novo método para classificar esse tipo de conteúdo.

Algo como:

 

jQuery.fn.dataTableExt.oSort['image-level-pre']  = function( img ) {

    return parseInt( $( img ).attr( 'alt' ), 10 );
};

jQuery.fn.dataTableExt.oSort['image-level-asc']  = function( x, y ) {

    return ( ( x < y ) ? -1 : ( ( x > y ) ?  1 : 0 ) );
};



jQuery.fn.dataTableExt.oSort['image-level-desc'] = function( x, y ) {

    return ( ( x < y ) ?  1 : ( ( x > y ) ? -1 : 0 ) );
};

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.