【问题标题】:How to add custom server side filter to datatables如何将自定义服务器端过滤器添加到数据表
【发布时间】:2016-10-14 13:49:26
【问题描述】:

我有一个基于 AJAX 的数据表,我想对其应用额外的过滤。到目前为止,我只找到了客户端或过时的示例。我不明白搜索实际上是如何执行的,以及如何添加过滤器以发挥作用。

一个简单的例子,我正在尝试将供应商过滤器添加到我的 SKU 数据表中。我已经用供应商名称填充了一个选择框。如果选择了供应商,我只想显示供应商的 SKU。此外,用户应该能够使用搜索来查看该供应商的结果。如何过滤我的结果?

这是我的咖啡脚本(更新):

$ ->
  $('#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();
});

我的数据表文件:

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

【问题讨论】:

标签: jquery ruby-on-rails coffeescript datatables


【解决方案1】:

抱歉,我的代码是 JavaScript,我不知道 CoffeScript。

为了向您的 ajax 请求添加参数,您必须在创建 datatable 时指定选项 ajax.data

  $('#vendor-skus-table').DataTable({
    // ... your paramteres
    ajax: {
      data: function(d) {
        d.sku = $('#vendor-skus-table').data('source'); // or maybe $('#vendor-skus-table').data('source').join(',')
      }
    }

你会在后端得到sku的ajax请求参数。

【讨论】:

  • 谢谢你,你的回答让我想到了正确的方向。将用我修复它的方式更新我的帖子
  • 我有一些使用 coffescript 和 ajax-datatables-rails gem 的工作代码:stackoverflow.com/questions/45514066/…
猜你喜欢
  • 2014-04-13
  • 2016-02-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-11
  • 2021-02-13
  • 2012-11-18
  • 1970-01-01
相关资源
最近更新 更多