Existe uma maneira de desativar a classificação inicial para jquery DataTables?


231

Estou usando o plugin jquery DataTables . Da documentação deles:

Se a classificação estiver ativada, o DataTables executará uma classificação de primeira passagem na inicialização. Você pode definir em quais colunas a classificação é executada e a direção da classificação com essa variável. A matriz aaSorting deve conter uma matriz para cada coluna a ser classificada inicialmente contendo o índice da coluna e uma sequência de direção ('asc' ou 'desc').

É possível ter a classificação ativada, mas desativar essa classificação de primeira passagem na inicialização? Atualmente, estou fazendo o lado do servidor de classificação inicial e preciso da funcionalidade de classificação, mas não preciso dessa funcionalidade de classificação inicial.

Respostas:


566

Bem, eu encontrei a resposta definida "aaSorting" para uma matriz vazia:

$(document).ready( function() {
    $('#example').dataTable({
        /* Disable initial sort */
        "aaSorting": []
    });
})

Para versões mais recentes do Datatables (> = 1.10), use a opção de pedido :

$(document).ready( function() {
    $('#example').dataTable({
        /* No ordering applied by DataTables during initialisation */
        "order": []
    });
})

5
Esta resposta foi uma grande ajuda, mas vale a pena notar a potencial confusão causada. Se col 0 for pré-classificado asc e essa classificação inicial estiver desativada, quando um usuário clicar pela primeira vez no cabeçalho de col 0, ele será classificado em ordem ascendente. Para o usuário, parece que nada acontece, pois eles esperam uma ordem descendente. Um segundo clique classificará desc. Para contornar este problema você pode configurar asSorting: ['desc', 'asc']no aoColumnDefsmodo que o primeiro clique é uma espécie desc.
tomfumb

8
Para versões mais recentes, sua ordem: []
Darren

@tomfumb Na verdade, há uma GUI mostrando que ela não está classificada. O primeiro clique mostrará a Classificação sendo ativada, mesmo que os itens não sejam alterados. Isso é o suficiente para mim.
1113 Nelson

2
Você também pode configurá-lo no nível da tabela -><table data-order="[]">
Howdy_McGee

Esta solução não funciona para mim, mas <table data-order="[]">funciona para mim.
Alper


25

Tente o seguinte:

$(document).ready( function () {
  $('#example').dataTable({
    "order": []
  });
});

Isto irá resolver o seu problema.


1

Nas opções de dados, coloque isto:

$(document).ready( function() {
  $('#example').dataTable({
    "aaSorting": [[ 2, 'asc' ]], 
    //More options ...

   });
})

Aqui está a solução: "aaSorting": [[2, 'asc']],

2A tabela de meios será classificada por terceira coluna,
ascem ordem crescente.


12
A questão era como "desativar a classificação inicial", não como especificar outra ordem de classificação. Esta resposta é mais adequada para uma pergunta diferente.
Gone Coding
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.