用于排序的数据表自定义下拉列表

时间:2017-12-04 08:55:29

标签: javascript jquery sorting datatable

我有下面的下拉列表。

<select name="sortBy" id="sortBy">
    <option value="0_asc" selected="selected">Reference #</option>
    <option value="0_desc">Reference # (desc)</option>
    <option value="pe-sku-column_asc">Part # (asc)</option>
    <option value="pe-sku-column_desc">Part # (desc)</option>
    <option value="pe-title-column_asc">Description (asc)</option>
    <option value="pe-title-column_desc">Description (desc)</option>
    <option value="pe-price-column_asc">Price (asc)</option>
    <option value="pe-price-column_desc">Price (desc)</option>
</select>

现在我想根据下拉选择

datatable进行排序

我试过这个

jQuery(document).ready(function ($) {
    var oTable = $('#super-product-table').DataTable({
        dom: 't'
    });

    $('#myInputTextField').keyup(function () {
        oTable.search($(this).val()).draw();
    })

    $("#sortBy").change(function () {

        oTable.fnSort([[1, 'asc']]);
    })
});

但它给了我

  

TypeError:oTable.fnSort不是函数

我在datatable.js中搜索了fnsort并找到了它。

还有一件事,当我将DataTable更改为dataTable时,排序开始工作,自定义搜索会停止。

1 个答案:

答案 0 :(得分:1)

请参阅@davidkonrad提供的the answer,了解dataTable()DataTable()之间的差异。

如果您想使用DataTable(),请使用较新的API方法order()替换较旧的API方法fnSort。例如:

oTable.order([1, 'asc']).draw();

有关详细信息,请参阅conversion guide for DataTables 1.10