2014-11-19 7 views
4

Я пытаюсь выполнить задачу, точно так же, как и этот question.jquery dataTable reset sorting

  • У меня есть рабочий JQuery DataTable
  • Я хочу, чтобы функция сброса сортировки, который перед тем пользователь может выбрать любой столбец, так же, как читать из HTML.

Это привело меня к хорошему плагину.

http://datatables.net/plug-ins/api/fnSortNeutral

jQuery.fn.dataTableExt.oApi.fnSortNeutral = function (oSettings) 
{ 
    /* Remove any current sorting */ 
    oSettings.aaSorting = []; 

    /* Sort display arrays so we get them in numerical order */ 
    oSettings.aiDisplay.sort(function (x,y) { 
     return x-y; 
    }); 
    oSettings.aiDisplayMaster.sort(function (x,y) { 
     return x-y; 
    }); 

    /* Redraw */ 
    oSettings.oApi._fnReDraw(oSettings); 
}; 

Однако я не знаю "Как заставить его работать". Кто-нибудь знает, что такое «oApi», или мне нужна еще одна настройка, прежде чем использовать этот плагин?

Поскольку мой скрипт отображается Uncaught TypeError: Cannot read property 'oApi' of undefined, сразу после того, как я скопировал сценарий, и ошибка делает функцию неопределенной. Что мне делать ?

ответ

2

В приведенной ссылке есть пример использования.

var table = $('#example').dataTable(); 

// Sort in the order that was originally in the HTML 
table.fnSortNeutral(); 

EDIT Попробуйте дать ему свойство "порядка" при инициализации: JSBin

jQuery.fn.dataTableExt.oApi.fnSortNeutral = function (oSettings) 
{ 
    /* Remove any current sorting */ 
    oSettings.aaSorting = []; 

    /* Sort display arrays so we get them in numerical order */ 
    oSettings.aiDisplay.sort(function (x,y) { 
     return x-y; 
    }); 
    oSettings.aiDisplayMaster.sort(function (x,y) { 
     return x-y; 
    }); 

    /* Redraw */ 
    oSettings.oApi._fnReDraw(oSettings); 
}; 

$(document).ready(function() { 
    var oTable = $('#example').dataTable({ 
     "order" : [[ 1, "desc" ]] 
    }); 

    setTimeout(function() { 
     oTable.fnSortNeutral() 
    }, 1000) 

}); 
+0

да, я попробовать это. Но перед строкой 'table.fnSortNeutral();' run, сам скрипт плагина имеет ошибку 'Uncaught TypeError: Невозможно прочитать свойство oApi 'undefined', поэтому он не может работать. –

+0

У нее есть работа - просмотрите мой обновленный ответ – elzi

+0

Спасибо за вклад. Для меня лучше использовать свойство 'aaSorting: []', и я нажимаю кнопку для запуска функции сортировки сброса. Вот отредактированное использование для других, кто хотел бы подтвердить: [JSBin] (http://jsbin.com/bezudiyawu/4/edit?js,output) –