【问题标题】:Ordering groups individual after renaming重命名后单独订购组
【发布时间】:2023-03-18 09:51:01
【问题描述】:

我的产品表按产品发布月份升序使用 initialSort 排序。我还按由 ajax json 响应 url 确定的代号对我的产品进行分组,并使用 groupBy 函数将它们重命名为可读名称。现在我想对我的组进行单独排序,而不会丢失我组中的月份排序。这怎么可能?

var table = new Tabulator("#tableid", {
  ajaxURL: url,
  layout: "fitColumns",
  groupBy: "codename",
  groupBy:function(data){
    if (data.codename == "X123") {
      return "Productname for X123";
    }
    if (data.codename == "X124") {
      return "Productname for X124";
    }
    …
    …
  },
  initialSort:[
      {column:"month", dir:"asc"}
  ],  
  columns: [
    { title: "Product", field: "codename"},
    { title: "Month", field: "month"},
    …
    …
    …
  ]
});

【问题讨论】:

  • 提供您进行排序的代码部分。此代码部分不足以重现和回答您的问题

标签: tabulator


【解决方案1】:

不完全确定您所说的“对我的组进行单独排序”是什么意思,但这就是您要找的吗?

https://jsfiddle.net/r3f7pysw/

initialSort:[
      {column:"month", dir:"asc"},
      {column:"codename", dir:"asc"}
  ],

NOTE(1) :我不认为你想要为你的分组返回那个字符串,当它看起来只是标题显示字符串时,你仍然要在 "代号”(因为字符串与末尾的更改相同,每次比较确实需要“一点”时间)。但也许你会...

注意(2):添加秒 initialSort 就像 Ctrl-单击排序以按多个标准排序。因此,如果您单击“月”,请记住这会破坏 currentSort 数组并将其设置为“月”。

【讨论】:

  • 感谢您的回答/反馈!非常有帮助。有没有办法从 1 列“锁定”排序?或者有没有办法触发一列的CTRL-Click?如果我点击两次,我的多重排序就消失了:(
  • 看这里:jsfiddle.net/k0ewLh7y 我想锁定重命名的组头的位置,只对单元格中的值进行排序。
  • 好的,它的,但似乎我唯一能想到的就是在确保一列是排序列表中的最后一列之后重新排序列。参见(jsfiddle.net/wqnxrv0u)以及dataSorted回调的使用
  • 嗯,好主意 - 我会检查我是否可以继续这样做。问题仍然是我想要一个单独的组排序,而不是 asc 或 desc。我想说如果代号 = X123 继续 1,如果代号 = X124 继续 3 等等,如果数据更多,感觉有点滞后。我认为没有“干净”的选项可以做到这一点。
  • 您可以添加另一列并在客户端使用 Mutator 创建该数据,并按此新列分组。或者,您可以在数据创建端执行此操作,并将其保存在数据馈送中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-10-13
  • 2017-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多