【发布时间】:2018-06-14 12:23:03
【问题描述】:
我们使用 jqgrid 在表格视图中显示数据。当一列有大写字母和小写字母时,客户端排序以随机顺序显示小写字母和大写字母。一些小写字母比大写字母先显示,另一些则先显示大写字母。请查看图片中的 FirstName 列。有没有人经历过同样的行为,对此有解释吗?还是我们做错了什么?我们使用 JQGrid 4.4.3 版。
【问题讨论】:
标签: sorting jqgrid uppercase lowercase
我们使用 jqgrid 在表格视图中显示数据。当一列有大写字母和小写字母时,客户端排序以随机顺序显示小写字母和大写字母。一些小写字母比大写字母先显示,另一些则先显示大写字母。请查看图片中的 FirstName 列。有没有人经历过同样的行为,对此有解释吗?还是我们做错了什么?我们使用 JQGrid 4.4.3 版。
【问题讨论】:
标签: sorting jqgrid uppercase lowercase
您可以使用ignoreCase: true 选项使本地排序不区分大小写。
最新版本的 jqGrid 允许完全自定义排序和搜索/过滤(请参阅the wiki article 作为起点)。新版本允许您指定自定义比较函数来比较列中的项目。它允许实现任何自定义排序行为。您使用的是 5 岁的 jqGrid 版本 4.4.3,它已经死了很长时间了。我建议你升级到free jqGrid 4.15.2。
【讨论】:
ignoreCase: true 的使用解决了您的主要问题吗?关于升级。即使您不更新旧应用程序,它也可能停止处理任何新的网络浏览器更新。 The answer 描述了 Chrome 19 及更高版本中
ui.jqgrid.css、jquery.jqgrid.min.js 和 grid.locale-en.js。您可以直接从 CDN 加载文件。见the wiki article。免费 jqGrid 可以完全免费使用。因此,我对您或您的公司升级到免费 jqGrid 不感兴趣。这只是我给你的建议,因为持有这么旧的死版本真的很冒险。
只是为了给这篇文章一个结论。我将 ignoreCase 的值形式从 true 更改为 false。当此标志为 false 时,网格会根据其 Unicode 对值进行排序。每次用户点击排序时,排序结果都是一致的。但是,外来字符(例如带有重音符号的字符)的排序与流行的排序行为不匹配。如果我们的产品,对于即将发布的版本来说,获得一致的排序结果就足够了。我们将考虑在未来将 jqGrid 升级到更新的版本。感谢@Oleg 的帮助。
【讨论】: