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

相关文章

Java实现将HTML文件与字符串转换为图片

《Java实现将HTML文件与字符串转换为图片》在Java开发中,我们经常会遇到将HTML内容转换为图片的需求,本文小编就来和大家详细讲讲如何使用FreeSpire.DocforJava库来实现这一功... 目录前言核心实现:html 转图片完整代码场景 1:转换本地 HTML 文件为图片场景 2:转换 H

Three.js构建一个 3D 商品展示空间完整实战项目

《Three.js构建一个3D商品展示空间完整实战项目》Three.js是一个强大的JavaScript库,专用于在Web浏览器中创建3D图形,:本文主要介绍Three.js构建一个3D商品展... 目录引言项目核心技术1. 项目架构与资源组织2. 多模型切换、交互热点绑定3. 移动端适配与帧率优化4. 可

Java使用正则提取字符串中的内容的详细步骤

《Java使用正则提取字符串中的内容的详细步骤》:本文主要介绍Java中使用正则表达式提取字符串内容的方法,通过Pattern和Matcher类实现,涵盖编译正则、查找匹配、分组捕获、数字与邮箱提... 目录1. 基础流程2. 关键方法说明3. 常见场景示例场景1:提取所有数字场景2:提取邮箱地址4. 高级

Python 字符串裁切与提取全面且实用的解决方案

《Python字符串裁切与提取全面且实用的解决方案》本文梳理了Python字符串处理方法,涵盖基础切片、split/partition分割、正则匹配及结构化数据解析(如BeautifulSoup、j... 目录python 字符串裁切与提取的完整指南 基础切片方法1. 使用切片操作符[start:end]2

MyBatis的xml中字符串类型判空与非字符串类型判空处理方式(最新整理)

《MyBatis的xml中字符串类型判空与非字符串类型判空处理方式(最新整理)》本文给大家介绍MyBatis的xml中字符串类型判空与非字符串类型判空处理方式,本文给大家介绍的非常详细,对大家的学习或... 目录完整 Hutool 写法版本对比优化为什么status变成Long?为什么 price 没事?怎

C++归并排序代码实现示例代码

《C++归并排序代码实现示例代码》归并排序将待排序数组分成两个子数组,分别对这两个子数组进行排序,然后将排序好的子数组合并,得到排序后的数组,:本文主要介绍C++归并排序代码实现的相关资料,需要的... 目录1 算法核心思想2 代码实现3 算法时间复杂度1 算法核心思想归并排序是一种高效的排序方式,需要用

MySQL常用字符串函数示例和场景介绍

《MySQL常用字符串函数示例和场景介绍》MySQL提供了丰富的字符串函数帮助我们高效地对字符串进行处理、转换和分析,本文我将全面且深入地介绍MySQL常用的字符串函数,并结合具体示例和场景,帮你熟练... 目录一、字符串函数概述1.1 字符串函数的作用1.2 字符串函数分类二、字符串长度与统计函数2.1

C# $字符串插值的使用

《C#$字符串插值的使用》本文介绍了C#中的字符串插值功能,详细介绍了使用$符号的实现方式,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧... 目录$ 字符使用方式创建内插字符串包含不同的数据类型控制内插表达式的格式控制内插表达式的对齐方式内插表达式中使用转义序列内插表达式中使用

SQL Server安装时候没有中文选项的解决方法

《SQLServer安装时候没有中文选项的解决方法》用户安装SQLServer时界面全英文,无中文选项,通过修改安装设置中的国家或地区为中文中国,重启安装程序后界面恢复中文,解决了问题,对SQLSe... 你是不是在安装SQL Server时候发现安装界面和别人不同,并且无论如何都没有中文选项?这个问题也

详解MySQL中JSON数据类型用法及与传统JSON字符串对比

《详解MySQL中JSON数据类型用法及与传统JSON字符串对比》MySQL从5.7版本开始引入了JSON数据类型,专门用于存储JSON格式的数据,本文将为大家简单介绍一下MySQL中JSON数据类型... 目录前言基本用法jsON数据类型 vs 传统JSON字符串1. 存储方式2. 查询方式对比3. 索引