【问题标题】:JqGrid custom local sorting function (without sorttype)JqG​​rid自定义本地排序功能(不带sorttype)
【发布时间】:2018-07-24 00:39:55
【问题描述】:

我需要在我的网格上进行自定义排序,但我的需求没有通过 sorttype 选项完成。 我想要做的是将所有空行放在第一位,然后按升序或降序对其他行进行排序。 我对 sorttype 的问题是我无法定义在升序和降序排序中排在第一位的值。

我需要的和 JS 原生的排序功能一样,但是有 jqgrid 数据:

myArray.sort(function(a,b) {
  var result = 0

  if (a>b) {
    result = 1; // Exchange a & b value
  }
  else {
    result = -1; // Keep a before b
  }
  
  if (b == "") {
    result = 1; // Exchange a & b value -> Put "" value always first !
  }


  return result;
});

jqgrid 功能中有类似的东西吗?

【问题讨论】:

  • 首先你应该指定你使用哪个版本的jqGrid以及来自哪个fork的jqGrid(free jqGrid,商业Guriddo jqGrid JS或版本 (a, b, direction, aItem, bItem) 指定sortfunc 回调函数,其中direction 是1 或-1 取决于排序顺序,ab 表示来自排序列的值,aItembItem 表示比较行的完整本地数据。它允许进行任何自定义排序顺序。
  • 感谢您的回答!我从未听说过 sortfunc,它非常有用!但是我使用的是 4.6 版本的 Free jqGrid,所以我认为这就是我没有“aItem”和“bItem”参数的原因?有什么解决方案可以在 4.6 版中获取这些信息吗?它可以让我进行更好的排序。
  • 带有(a, b, direction)参数的回调sortfunc已经存在于jqGrid 4.6中。不过 jqGrid 4.6 已经 4 岁了。它已经死了,很长一段时间以来都不受支持。 “jqGrid”的最新版本是 4.7。之后产品有两个主要分支:“free jqGrid”,我开发的,可以在与 jqGrid 4.6 相同的许可下免费使用,以及 commertial“Guriddo jqGrid”。我建议您从两个当前版本升级到一个。
  • 是的,带有 (a, b, direction) 参数的 sortfunc 可以完美运行 :) 我会尝试升级我的 jqgrid 版本以支持新参数。 4.6 和 4.7 版本之间是否存在一些不兼容?或者我可以在不修改现有脚本中的任何内容的情况下更改我的版本吗?最后一个问题:我找到了“Guriddo jqGrid”下载,但不是免费的 4.7 jqGrid 版本。我在哪里可以找到下载链接?提前致谢!
  • 我开发的free jqGrid的当前版本是4.15.2。您可以从GitHubnpmbowerNuGetMaven Central 下载它,但推荐的方式是从 CDN 加载(参见the wiki article)。有关示例,请参阅the page

标签: javascript sorting jqgrid local


【解决方案1】:

存在sorttype的替代方案:回调函数sortfunc,可以在colModel中定义而不是sorttype。回调 sortfunc 在旧版本的 jqGrid 中有 3 个参数 (a, b, direction),在 free jqGrid 中有 5 个参数 (a, b, direction, aItem, bItem)(参见 the demo 作为使用示例 sortfuncthe old answer 以获得更多信息)。

【讨论】:

    猜你喜欢
    • 2013-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-25
    相关资源
    最近更新 更多