【问题标题】:Datatables Filtering - an exact match in smart seach数据表过滤 - 智能搜索中的完全匹配
【发布时间】:2014-10-29 15:43:37
【问题描述】:

我想坚持使用数据表所具有的智能搜索(我键入时搜索)。问题是,我的专栏之一显示了以下值:人员和人员。因此,拥有数百万条记录,当我键入“person”时,我很难挖掘到“person”,而该列仅显示“personnel”。

我不想要完全匹配。在某些情况下,这会让我输入全名:“person-xyz-123”。

有没有办法让我在引号中指定说“人”并告诉数据表我只想在我输入引号时进行精确搜索并且仍然坚持我的正常搜索?

咖啡脚本文件:

$(xyz).ready ->
    $('#xyz').dataTable
      bProcessing: true
      bServerSide: true
      sDom: "<\"top\"T>rt<\"bottom\"lip><\"clear\">"
      oTableTools:
        sSwfPath: "../TableTools-2.1.5/media/swf/copy_csv_xls_pdf.swf"
      sAjaxSource: $('#xyz').data('source')
    .columnFilter aoColumns: [
      { type: "text" },
      { type: "text" },
      { type: "text" },
      { type: "text" },
      { type: "text" },
      { type: "text" },
      { type: "text" },
      { type: "text" },
      {
      type: "select"
      values: [
        {"value": 0, "label": "Failed"},
        {"value": 1, "label": "Completed"},
        {"value": 2, "label": "Processing"}
      ]
      }
    ]
    return

【问题讨论】:

  • 您是在使用服务器端处理吗?
  • 是的。我已经复制了上面的代码

标签: javascript ruby-on-rails coffeescript datatables jquery-datatables


【解决方案1】:

(我假设使用 1.9 API,因为这似乎是您在问题中使用的。)

可以做你想做的事,但这意味着修改服务器端代码,以响应对你作为sAjaxSource 选项提供的 URL 的请求。它必须执行这些检查:

  1. 如果sSearch 参数(添加到sAjaxSource URL)包含双引号中的术语,如"person",则删除双引号并精确匹配。

    李>
  2. 否则执行部分匹配。

DataTables 发送到服务器的内容及其预期内容的完整文档是here

【讨论】:

  • 你能举个例子吗?谢谢
  • 我知道如何使用 Django,但我不使用 Ruby-on-Rails。
  • 我想我明白了。当我有干净的代码时,我会发布。谢谢
  • 很高兴阅读!抱歉我没有早点回复。很忙……我在这里收到了很多关于我的 cmets 的回复。
  • 没问题。感谢您的帮助
【解决方案2】:

我创建了这个辅助函数来解决我的问题:

  def filter_helper(data)
    return "#{data[:name]} = :search", search: "#{params[data[:dt_name]].gsub!(/^\"|\"?$/, '') }" if "#{params[data[:dt_name]]}".chars.first == "\""
    return "#{data[:name]} like :search", search: "%#{params[data[:dt_name]]}%" if "#{params[data[:dt_name]]}".chars.first != "\""
  end

【讨论】:

    猜你喜欢
    • 2011-08-24
    • 1970-01-01
    • 2021-12-04
    • 1970-01-01
    • 2019-09-22
    • 2020-06-27
    • 2020-04-18
    • 1970-01-01
    • 2016-10-15
    相关资源
    最近更新 更多