1

我正在使用 Railscast 方式使用 Ajax 远程访问 Rails 数据。它工作正常。

Railscast 340

现在,我正在尝试添加 jquery-datatables-column-filter 插件。

这是我的咖啡脚本:

$("#workorders").dataTable(
  sPaginationType: "full_numbers"
  bProcessing: true
  bServerSide: true
  bFilter: false
  sAjaxSource: $('#workorders').data('source')
  sDom: "T<\"clear\">lfrtip"
 ).columnFilter()

但是,当我什至单击 NEXT(获取工作订单的第二页)时,我收到以下控制台错误:

Uncaught TypeError: Cannot read property 'sServerMethod' of undefined  jquery.dataTables.js?body=1:8754
DataTable.defaults.fnServerData jquery.dataTables.js?body=1:8754
oTable.fnSettings.fnServerData jquery.dataTables.columnFilter.js?body=1:330
_fnAjaxUpdate jquery.dataTables.js?body=1:1898
_fnDraw jquery.dataTables.js?body=1:1431
(anonymous function) jquery.dataTables.js?body=1:2876
fnClickHandler jquery.dataTables.js?body=1:11665
(anonymous function) jquery.dataTables.js?body=1:4800
jQuery.event.dispatch jquery.js?body=1:3075
elemData.handle

并且搜索列也不起作用。

有任何想法吗?谢谢!

更新1

我什至尝试使用另一个索引列表(没有 ajax)来简化。

这是咖啡脚本:

  $("#dataTable1").dataTable().columnFilter()

当我尝试搜索列时,我得到:

Uncaught TypeError: Cannot read property 'oFeatures' of null   jquery.dataTables.js?body=1:5586
fnFilter jquery.dataTables.js?body=1:5586
(anonymous function) jquery.dataTables.columnFilter.js?body=1:65
jQuery.event.dispatch jquery.js?body=1:3075
elemData.handle
4

2 回答 2

0

您是否将 Column Filter 插件 js 放入您的 /vender/assets/javascripts 目录中?然后在你的 application.js 中引用:

//= require jquery.dataTables.columnFilter
于 2013-09-13T16:58:37.223 回答
0

尝试从此更改 jquery.dataTables.columnFilter.js 中的第 316 行:

oTable.fnSettings().fnServerData = function (sSource, aoData, fnCallback) {

对此:

oTable.fnServerData = function (sSource, aoData, fnCallback) {

于 2013-12-13T07:55:51.593 回答