【发布时间】: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 取决于排序顺序,a和b表示来自排序列的值,aItem和bItem表示比较行的完整本地数据。它允许进行任何自定义排序顺序。 -
感谢您的回答!我从未听说过 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。您可以从GitHub、npm、bower、NuGet 或Maven Central 下载它,但推荐的方式是从 CDN 加载(参见the wiki article)。有关示例,请参阅the page
标签: javascript sorting jqgrid local