【问题标题】:dataTables columnFilter no way to enter data for column filteringdataTables columnFilter 无法输入数据进行列过滤
【发布时间】:2014-03-03 12:01:12
【问题描述】:

页面显示带有列名的脚,但没有用于输入列过滤器值的位置。 我查看了数据表网站上的示例以及堆栈溢出网站中的其他示例,发现不知道如何修复它。 任何帮助或建议如何解决此问题将不胜感激。 谢谢。

<% provide(:title, 'TBMs Daily Progress') %>

<% if signed_in? %>

    <h3>TBMs Max Station by day - Today's date: <%=@current_date%></h3>

  <% if @current_date != @tbms_progress_W.daily_date %>
      <h6 class="error-message">
          <%= "Today's location for TBM W is not loaded" %>
          <%= " Last TBM W recorded date was: " %>
          <%=@tbms_progress_W.daily_date %>
      </h6>
  <% end %>

  <% if @current_date != @tbms_progress_E.daily_date %>
      <h6 class="error-message">
          <%= "Today's location for TBM E is not loaded" %>
          <%= " Last TBM E recorded date was: " %>
          <%=@tbms_progress_E.daily_date %>
      </h6>
  <% end %>

    <p>
        <% if current_user.admin? %>
            <%= link_to "Add new location", new_tbms_progress_path, class: "btn btn-sm btn-danger" %>
        <% end %>
        <%= link_to "List view", tbms_progresses_path, class: "btn btn-sm btn-primary" %>
    </p>

    <table id="progresstable" class="display table-bordered table-condensed table-responsive table-hover">
        <thead style="background-color: #bbbbbb;">
            <tr>
                <th>Daily Date</th>
                <th>TBM ID</th>
                <th>Max Station</th>
                <th>TBM Status</th>
                <th>ID</th>
            </tr>
        </thead>
        <tbody>
            <% @tbms_progresses.each do |tbms_progress| %>
                <tr>
                    <td><%= tbms_progress.daily_date %></td>
                    <td><%= tbms_progress.tbm_id %></td>
                    <td><%= number_with_precision tbms_progress.max_station, precision: 2 %>
                    <td><%= tbms_progress.tbm_status %></td>
                    <td><%= link_to tbms_progress.id, tbms_progress %></td>
                </tr>
            <% end %>
        </tbody>
        <tfoot>
            <tr>
                <th>Daily Date</th>
                <th>TBM ID</th>
                <th>Max Station</th>
                <th>TBM Status</th>
                <th>ID</th>
            </tr>
        </tfoot>
    </table>
    <hr/>
    <h6>Legend: W aka TBM1 or 26900, E aka TBM2 or 27000</h6>

<% else %>
    <%= render 'instruments/unsigned' %>
<% end %>

<script>
  $(document).ready
  (function() 
      {
        $('#progresstable').dataTable
        (
            {
                /*sPaginationType: "full_numbers",*/
                bJQueryUI: true,
                aaSorting: [ [0,"desc"], [1, "desc"] ],
                bDeferRender: true,
                bStateSave: true
            }
        ).columnFilter
        (
            {aoColumns: 
                [
                    { type: "text" },
                    { type: "text" },
                    { type: "text" },
                    { type: "text" },
                    { type: "text" }
                ]
            }
        );
      }
    );
</script>

【问题讨论】:

标签: ruby-on-rails ruby datatables


【解决方案1】:

抱歉,不知道有这样的插件存在。

我已经检查过了,它工作得非常好。 Look for yourself

我唯一能想到的是,在加载 jquery 和数据表代码之后,但在开始初始化之前,您没有包含来自 here 的插件代码。

  <script src="http://code.jquery.com/jquery-2.0.3.min.js" data-semver="2.0.3" data-require="jquery@*"></script>
  <link data-require="datatables@*" data-semver="1.9.4" rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/datatables/1.9.4/css/jquery.dataTables.css" />
  <script data-require="datatables@*" data-semver="1.9.4" src="//cdnjs.cloudflare.com/ajax/libs/datatables/1.9.4/jquery.dataTables.js"></script>
  <script src="colfilter.js"></script>
  <script src="script.js"></script>

【讨论】:

  • 示例中的代码是纯html。我正在使用 Ruby on Rails。另一个细节(可能很重要,我不知道)是提供的示例使用的是数据表版本 1.9.4。我不知道如何通过我的 Gemfile 获得这个版本。我的宝石列表中总是出现 jquery-datatables-rails (1.12.2)。任何为 Gemfile 中的数据表指定版本 1.9.4 的尝试都会出现以下错误:在这台机器上可用的 gems 中找不到 gem 'jquery-datatables-rails (= 1.9.4) ruby​​'。
  • 我不是ruby程序员,但是js就是js,所以应该有办法让它跑起来。可能你只是求助于(不是那么)复杂的方法,在页脚中使用简单的输入字段并将它们链接到排序功能。真的没那么难,相信我。只需看示例(大约 20 行简单的 jquery 代码,只有 1 行(#12)实际上与数据表相关)。祝你好运,对不起,我不能再帮你了。
【解决方案2】:

我通过迁移到数据表 1.10.2 解决了这个问题,不再使用表的引导布局,而是在包含表的每个页面上运行来自 //cdn.datatables.net 的数据表脚本。

【讨论】:

    猜你喜欢
    • 2015-09-13
    • 2015-08-04
    • 2022-07-27
    • 1970-01-01
    • 1970-01-01
    • 2021-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多