EXT.js对中文字符串的排序

2024-06-11 02:48
文章标签 字符串 js 中文 排序 ext

本文主要是介绍EXT.js对中文字符串的排序,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

转自http://blog.163.com/guyywan_1314/blog/static/12885425020113274431890/

问题详述:我列表有一列name名称列  内容大概是  "桂花_S1"、"桂花_S2"、"桂花_S12"、"桂花_S3"、"桂花_S4"、"桂花_S5"、"桂花_S51"、"桂花_S6" 默认我们点列头的时候  肯定是  桂花_S1、桂花_S12、桂花_S2、桂花_S3.。。。。

但我要的效果是  桂花_S1、桂花_S2、桂花_S3、桂花_S4、桂花_S5、桂花_S6、桂花_S12、桂花_S51

我的思路的 重写ext本身的升降序方法:

Ext.data.Store.prototype.applySort = function() {
    if (this.sortInfo && !this.remoteSort) {
        var s = this.sortInfo, f = s.field;
        var st = this.fields.get(f).sortType;
        var fn = function(r1, r2) {         
            var v1 = st(r1.data[f]), v2 = st(r2.data[f]);           
            if (typeof(v1) == "string") {  
             var i1 = v1.indexOf("_S");
                var i2 = v2.indexOf("_S");
                if(i1 != -1 && i2 != -1){
                    i1 = parseInt(i1) +2;
                    i2 = parseInt(i2) +2;
                    var num1 =v1.substring(i1);
                    var num2 =v2.substring(i2);                   
                    num1 = parseInt(num1);
              num2 = parseInt(num2);
              return num1 > num2 ? 1 : (num1 < num2 ? -1 : 0);
                }
               return v1.localeCompare(v2);  
            }
            return v1 > v2 ? 1 : (v1 < v2 ? -1 : 0);
        };      
        this.data.sort(s.direction, fn);
        if(this.snapshot && this.snapshot != this.data) {
            this.snapshot.sort(s.direction, fn);
        }
    }
};

将上面代码粘贴到 ext-all.js  或者html页面顶部。 保证页面打开加载到就行。

主要代码在if (typeof(v1) == "string")这个{}里面。注意的是肯定是有规律的。比如这个是比较_S后台的数字。

当然,如果刚grid数据加载的时候 就要排该列,这样写:

var gridStore = new Ext.data.JsonStore({
   url : 'test.jsp', 
   root : 'items',
   fields : ['id', 'name', 'name2', 'name3', 'addTime'],
   autoLoad : true,
   sortInfo: {field: 'name', direction: 'ASC'}  //关键代码  默认排序项name
  }); 

效果见图:

Extjs gridPanel分页自定义排序方式、 重写升序降序方法、grid字符串列按数字排序 - 雨缘 - 媛媛的博客

 

这篇关于EXT.js对中文字符串的排序的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1050001

相关文章

MySQL字符串转数值的方法全解析

《MySQL字符串转数值的方法全解析》在MySQL开发中,字符串与数值的转换是高频操作,本文从隐式转换原理、显式转换方法、典型场景案例、风险防控四个维度系统梳理,助您精准掌握这一核心技能,需要的朋友可... 目录一、隐式转换:自动但需警惕的&ld编程quo;双刃剑”二、显式转换:三大核心方法详解三、典型场景

Java中的随机数生成案例从范围字符串到动态区间应用

《Java中的随机数生成案例从范围字符串到动态区间应用》本文介绍了在Java中生成随机数的多种方法,并通过两个案例解析如何根据业务需求生成特定范围的随机数,本文通过两个实际案例详细介绍如何在java中... 目录Java中的随机数生成:从范围字符串到动态区间应用引言目录1. Java中的随机数生成基础基本随

tomcat日志中文乱码问题及解决方案

《tomcat日志中文乱码问题及解决方案》文章主要介绍了在使用Tomcat时遇到的乱码问题及其解决方法,页面输出乱码可能由于server.xml配置、HTML标签、编程输出编码不一致引起,解决方法包括... 目录一、页面输出乱码1.server.XML配置未注明编码格式2.catalina.bawww.cp

Java Map排序如何按照值按照键排序

《JavaMap排序如何按照值按照键排序》该文章主要介绍Java中三种Map(HashMap、LinkedHashMap、TreeMap)的默认排序行为及实现按键排序和按值排序的方法,每种方法结合实... 目录一、先理清 3 种 Map 的默认排序行为二、按「键」排序的实现方式1. 方式 1:用 TreeM

Python实现字典转字符串的五种方法

《Python实现字典转字符串的五种方法》本文介绍了在Python中如何将字典数据结构转换为字符串格式的多种方法,首先可以通过内置的str()函数进行简单转换;其次利用ison.dumps()函数能够... 目录1、使用json模块的dumps方法:2、使用str方法:3、使用循环和字符串拼接:4、使用字符

Python 常用数据类型详解之字符串、列表、字典操作方法

《Python常用数据类型详解之字符串、列表、字典操作方法》在Python中,字符串、列表和字典是最常用的数据类型,它们在数据处理、程序设计和算法实现中扮演着重要角色,接下来通过本文给大家介绍这三种... 目录一、字符串(String)(一)创建字符串(二)字符串操作1. 字符串连接2. 字符串重复3. 字

JS纯前端实现浏览器语音播报、朗读功能的完整代码

《JS纯前端实现浏览器语音播报、朗读功能的完整代码》在现代互联网的发展中,语音技术正逐渐成为改变用户体验的重要一环,下面:本文主要介绍JS纯前端实现浏览器语音播报、朗读功能的相关资料,文中通过代码... 目录一、朗读单条文本:① 语音自选参数,按钮控制语音:② 效果图:二、朗读多条文本:① 语音有默认值:②

在Node.js中使用.env文件管理环境变量的全过程

《在Node.js中使用.env文件管理环境变量的全过程》Node.js应用程序通常依赖于环境变量来管理敏感信息或配置设置,.env文件已经成为一种流行的本地管理这些变量的方法,本文将探讨.env文件... 目录引言为什么使php用 .env 文件 ?如何在 Node.js 中使用 .env 文件最佳实践引

使用Node.js和PostgreSQL构建数据库应用

《使用Node.js和PostgreSQL构建数据库应用》PostgreSQL是一个功能强大的开源关系型数据库,而Node.js是构建高效网络应用的理想平台,结合这两个技术,我们可以创建出色的数据驱动... 目录初始化项目与安装依赖建立数据库连接执行CRUD操作查询数据插入数据更新数据删除数据完整示例与最佳

Java 字符串操作之contains 和 substring 方法最佳实践与常见问题

《Java字符串操作之contains和substring方法最佳实践与常见问题》本文给大家详细介绍Java字符串操作之contains和substring方法最佳实践与常见问题,本文结合实例... 目录一、contains 方法详解1. 方法定义与语法2. 底层实现原理3. 使用示例4. 注意事项二、su