当前位置: 首页 > 知识库问答 >
问题:

当列数据来自使用服务器端处理的关联表时,DataTables不排序

戚森
2023-03-14

是否使用服务器端处理对关联表中的列数据进行排序?

在服务器端操作数据表,但不允许对相关的表值进行排序

class Workshop < ActiveRecord::Base 
  belongs_to :location, :class_name => 'Location'
end

class Location < ActiveRecord::Base
  has_many :workshops
  attr_accessible :name,
end

记录按id关联(workshop.id=位置\u id)

在Workshop datatable类中,显示的信息是位置名称

class WorkshopsDatatable
  def data
    workshops.map do |workshop|
    {
      id:           workshop.id,
      location:     workshop.location_name,
    }
  end
end

我希望能够按location_name而不是location_id对位置列进行排序。

谢谢你

共有2个答案

瞿文柏
2023-03-14

谢谢你的回答。我很惊讶这是不可能的,因为json呈现引用的是Workshops活动记录,而不是位置活动记录

<div class="well well-tzippy datatable-component">
  <table id="workshops" class="table-striped" data-source="<%= workshops_url(format: "json") %>">
    <thead>
      <tr>
      <th class="text-left">Title</th>
       <th class="text-left">Instructor</th>
       <th>Scheduled Time</th>
       <th class="text-left">Location</th>
       <th class="text-left">Contact</th>
       <th>Stats</th>

     </tr>
   </thead>
  <tbody>
  </tbody>

请注意,数据源引用Workshop_path,因此location_name是表中与研讨会活动记录关联的位置一列,location_id=Workshop.id:

data-source="<%= workshops_url(format: "json") %>">
凌永逸
2023-03-14

按如下方式修改WorkshopStatable类中的行:

def sort_column
  columns = %w[id location_name]
  columns[params[:iSortCol_0].to_i]
end
 类似资料:
  • 我正在尝试使用jQuery DataTables AJAX服务器端脚本。。。 我需要将wp_usermeta表与wp_users表连接起来。。。 如何使用示例服务器端处理脚本加入wp_usermeta表?脚本可以在https://datatables.net/examples/server_side/simple.html找到 相关代码是

  • 问题内容: 问题: 使用ASP.NET WebForms的jQuery DataTables服务器端处理。 解: 达林·迪米特洛夫(Darin Dimitrov)使用一个分页和排序但不进行任何搜索的示例回答了这个问题。这是我对他的作品进行的“基本”修改,以使他的示例可以进行搜索: 问题答案: 我写了一个简单的例子来说明这个想法。 首先,编写用于在服务器端处理数据的通用处理程序(但这可以是网页,We

  • 我是新来的数据。我试图找到解决方案的服务器端处理,因为过去两天,但没有找到解决方案。 我的JS代码是 可数据以表格式呈现JSON。但是排序、分页和搜索操作是行不通的。无论我从下拉列表中选择了多少值,它都会在第一页显示所有结果 在底部,它还显示了像“显示0到0的0个条目(从NaN总条目中过滤)”这样的消息 如果我通过服务器端:false。一切正常。但我希望服务器端处理相同的数据 任何帮助都将不胜感激

  • 我为此挣扎了好几天。我正在尝试将Sergio Llana的服务器端解决方案应用到我现有的项目中。 Sergio的数据表服务器端处理 这是我的实现: 我的数据表服务器端处理 不同的是,我的解决方案从MySQL数据库抓取数据,而不是本地文件。我认为我很接近使它工作,从数据库的数据显示在表中正确。当我关闭服务器端选项,排序和搜索工作正常,但当我打开它,每次我点击列,搜索或其他任何东西,我得到的只是"处理

  • 我正在使用Datatables在我的Web应用程序中显示表格数据,并将其配置为利用服务器端处理,即通过AJAX查询服务器以查找过滤后的数据。我想根据特定于我的应用程序的附加参数进行筛选,即对应于某些用户选项(例如,通过UI中的复选框)。如何使DataTables将这些附加的筛选器参数传递到服务器?

  • 嗨,我在试图理解如何使用datatables进行服务器端处理时遇到了一些主要问题。在某些背景下,我使用一个服务调用Gamesparks为视频游戏创建后端,在这个服务中,他们有一个mongodb的实现。 我有一个endpoint可以获取所有用户,我可以在表中看到他们,但问题是我获取了所有用户,如何实现分页?。在文档中,他们声明我们必须将serverSide设置为true,但不起作用。我真的不知道如何

  • 我正在使用数据表和服务器端处理(Django)。 我有一个单独的textfield,在表已经呈现之后,我使用它自定义筛选DataTable中的数据。 以下操作很好(我想自定义筛选列): 所以在页面加载(DataTable的初始加载)时,它很好地过滤了'Robert'。但现在我想以编程方式更改数据以筛选 我已经尝试了以下操作,有一个正确的筛选对象,但是表本身并没有用新的筛选器重新绘制。 我也试过这个