jQuery datatables插件 - 如何排序选择选项列表

时间:2015-04-02 13:11:43

标签: jquery datatables

我正在使用此插件https://datatables.net/examples/api/multi_filter_select.html

我的选项列表有问题

http://i61.tinypic.com/f5543t.jpg

现在是10,12,14,3,4,5,6,7

我希望有3,4,5,6,7,10,12,14

它可能是一些选项,但我找不到它..

我的jQuery代码喜欢

$(document).ready(function() {
    $('#example').DataTable( {
        initComplete: function () {
            var api = this.api();

            api.columns().indexes().flatten().each( function ( i ) {
                var column = api.column( i );
                var select = $('<select><option value="">Wybierz</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>' )
                } );
            } );
        },
        "lengthMenu": [[10, 25, 50, -1], [10, 25, 50, "Wszystko"]],
    } );
} );

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

您的值列表按字符串排序,而不是数字。显然,在该列的某个位置,您有非数字数据阻止DataTables识别其类型。

有关可用数据类型的列表,请参阅column.type文档。如果您在该列中包含HTML标记,我认为您需要numhtml-num

您的代码需要更改,如下所示:

 $('#example').DataTable({
     'columnDefs': [{
         // Use your actual column index instead of 0
         'targets': 0,

         // Use 'num' or 'html-num' depending on your column data
         'type': 'html-num' 
      }],

      // Other initialization options
 )};

答案 1 :(得分:0)

我找到了一个解决方案 - 只需删除第20行中的.sort(),它就像魅力一样:)