【问题标题】:How JQGrid sorts upper/lower case letters?JQGrid 如何对大写/小写字母进行排序?
【发布时间】:2018-06-14 12:23:03
【问题描述】:

我们使用 jqgrid 在表格视图中显示数据。当一列有大写字母和小写字母时,客户端排序以随机顺序显示小写字母和大写字母。一些小写字母比大写字母先显示,另一些则先显示大写字母。请查看图片中的 FirstName 列。有没有人经历过同样的行为,对此有解释吗?还是我们做错了什么?我们使用 JQGrid 4.4.3 版。

【问题讨论】:

    标签: sorting jqgrid uppercase lowercase


    【解决方案1】:

    您可以使用ignoreCase: true 选项使本地排序不区分大小写。

    最新版本的 jqGrid 允许完全自定义排序和搜索/过滤(请参阅the wiki article 作为起点)。新版本允许您指定自定义比较函数来比较列中的项目。它允许实现任何自定义排序行为。您使用的是 5 岁的 jqGrid 版本 4.4.3,它已经死了很长时间了。我建议你升级到free jqGrid 4.15.2。

    【讨论】:

    • 升级到较新的版本不是我们目前的选择。我还注意到 IE 中的排序行为与 chrome 中的不同。我们只是想看看是否有办法让它保持一致,然后我们可以记录这种行为。
    • @user981848:ignoreCase: true 的使用解决了您的主要问题吗?关于升级。即使您不更新旧应用程序,它也可能停止处理任何新的网络浏览器更新。 The answer 描述了 Chrome 19 及更高版本中
    • @user981848:解决the answer 中描述的问题的唯一方法是更新 jqGrid 代码。我将在我开发的免费 jqGrid 的新版本中修复一个问题,例如在 4.15.4 中。要计算风险并计算升级时间,我建议您测试免费 jqGrid 的当前版本:4.15.2。我试图让免费的 jqGrid 最大限度地与旧版本兼容,您可能只需要添加一些选项,例如,出于安全原因更改了默认值。
    • @user981848:您只需要临时修改 URL,从中加载 ui.jqgrid.cssjquery.jqgrid.min.jsgrid.locale-en.js。您可以直接从 CDN 加载文件。见the wiki article。免费 jqGrid 可以完全免费使用。因此,我对您或您的公司升级到免费 jqGrid 不感兴趣。这只是我给你的建议,因为持有这么旧的死版本真的很冒险。
    【解决方案2】:

    只是为了给这篇文章一个结论。我将 ignoreCase 的值形式从 true 更改为 false。当此标志为 false 时,网格会根据其 Unicode 对值进行排序。每次用户点击排序时,排序结果都是一致的。但是,外来字符(例如带有重音符号的字符)的排序与流行的排序行为不匹配。如果我们的产品,对于即将发布的版本来说,获得一致的排序结果就足够了。我们将考虑在未来将 jqGrid 升级到更新的版本。感谢@Oleg 的帮助。

    【讨论】:

      猜你喜欢
      • 2018-03-16
      • 2020-08-24
      • 1970-01-01
      • 2019-07-10
      • 2018-05-04
      • 2018-03-30
      • 2013-02-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多