追加フィルタリングを適用したいAJAXベースのデータテーブルがあります。これまでのところ、私はクライアント側または古くなった例しか見つけていません。私は検索が実際にどのように実行され、どのように機能にフィルタを追加できるのか理解できません。カスタムサーバーサイドフィルタをデータテーブルに追加する方法
単純な例では、SKUデータテーブルにベンダーフィルタを追加しようとしています。私は、ベンダー名を持つselectboxを設定しました。ベンダーが選択された場合、私はそのベンダーのSKUを表示したいだけです。さらに、ユーザーは検索を使用してこのベンダーの結果を調べることができます。結果をどのようにフィルタリングできますか?ここで
は私のCoffeeScript(UPDATE)である:
$ ->
$('#vendor-skus-table').DataTable
processing: true
serverSide: true
retrieve: true
pagingType: 'full_numbers'
ajax: data: (d) ->
d.sku = $('#vendor-skus-table').data('source')
d.extra_search = $('#vendor-select').val();
return
私のフィルタフィールドのためのいくつかの追加のjavascript:
$('#vendor-select.vendor-select').on('change', function() {
$('#vendor-skus-table').DataTable().ajax.reload();
});
私のDataTableファイル:
class VendorSkuDatatable < AjaxDatatablesRails::Base
def_delegators :@view, :params, :link_to, :vendor_skus_path, :vendor_path
def sortable_columns
@sortable_columns ||= ['VendorSku.name', 'Vendor.name', 'VendorSku.inventory_quantity' ]
end
def searchable_columns
@searchable_columns ||= ['VendorSku.name', 'Vendor.name']
end
private
def data
records.map do |record|
[
link_to(record.name, record),
link_to(record.vendor.name, record.vendor),
record.inventory_quantity
]
end
end
def get_raw_records
VendorSku.joins(:vendor).where(vendor_id: params[:extra_search])
end
end
プラグインのドキュメントにはさまざまな言語用のサーバー側コネクタがあります – charlietfl
フィルタリングプラグインhttps://datatables.net/plug-ins/filtering/は残念ながらクライアント側でのみ利用可能です:( – stoerebink