`
paladin1988
  • 浏览: 326396 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

【转载】ExtJs中解决中文排序问题

 
阅读更多

   转载自 http://blog.sina.com.cn/s/blog_62276c5a01015ah8.html

 

 

       要实现中文排序的功能,需要重写Ext.data.Store的applySort函数,可以把它放在ext-all.js文件的最后,或者是放到 HTML页面的最上面,要在ExtJS初始化之后,实际代码调用之前执行,这样重写的方法才能起作用,中文排序也就实现了。完整的实现代码如下:

 

 

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>解决中文排序问题</title>
<link rel="stylesheet" type="text/css" href="../ext-3.4.0/resources/css/ext-all.css"></link>
<script type="text/javascript" src="../ext-3.4.0/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="../ext-3.4.0/ext-all.js"></script>
<script type="text/javascript">
Ext.data.Store.prototype.applySort=function(){//重载applySort
 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]);
   //添加:修复汉字排序异常的Bug
   if(typeof(v1)=="string"){//若为字符串
    return v1.localeCompare(v2);//则localeCompare比较汉字字符串,Firefox与IE均支持
    
   }//添加结束
   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);
  }
  
 }
};
</script>
<script type="text/javascript">
Ext.onReady(function(){
 var cum = new Ext.grid.ColumnModel([
  {header:"项目ID",dataIndex:'project_id'},
  {header:"项目名称",dataIndex:'project_name'},
  {header:"部门",dataIndex:'project_dept_no'},
  {header:"项目经理",dataIndex:'project_manager'},
  {header:"开发经理",dataIndex:'project_leader'}
]);

 var cumdata=[
  ['1','教学管理系统','001','李润','田成功'],
  ['2','留言系统','002','光明','周爱卿'],
  ['3','图书管理系统','008','毛小强','黄岩'],
  ['4','校信通','003','王磊','郭强']
];

 var store=new Ext.data.Store({
  proxy:new Ext.data.MemoryProxy(cumdata),
  reader:new Ext.data.ArrayReader({},[
   {name:'project_id'},
   {name:'project_name'},
   {name:'project_dept_no'},
   {name:'project_manager'},
   {name:'project_leader'}
  ]),
  sortInfo:{field:'project_name',direction:'ASC'}//设置project_name字段,按升序排列
});

 store.load();

 var cumgrid =new Ext.grid.GridPanel({
  renderTo:'cumGrid',
  store:store, 
  height:200,
  width:500,
  colModel:cum
});
});
</script>
</head>
<body>
<div id="cumGrid"></div>
</body>
</html>
分享到:
评论

相关推荐

    Extjs grid 中文排序问题修正

    在EXTJS开发中,我们经常会遇到使用Grid组件展示数据的情况,特别是当数据包含中文字符时,可能会遇到排序问题。EXTJS Grid默认的排序机制对于英文字符处理得较好,但对于中文字符,由于编码和比较规则的不同,可能...

    解决Ext Grid中文排序问题

    为了解决这个问题,我们可以重写Ext.data.Store的`applySort`函数,以便在进行本地排序时应用中文排序规则。上述代码正是这样一个解决方案。它将原生的`applySort`函数替换为一个新的版本,其中包含了对中文字符串...

    ExtJs表格grid中文排序函数方法

    ExtJs中文排序函数方法详解 在ExtJs框架中,实现中文排序功能是一件非常重要的事情。今天,我们将详细介绍如何使用ExtJs实现中文排序,特别是使用Ext.data.Store.prototype.createComparator()函数来实现中文排序。...

    Ext中文排序问题

    ### ExtJS中文排序问题解析 #### 基本概念理解 ExtJS是一个用JavaScript编写的开源框架,用于构建跨平台、高性能的Web应用程序。它提供了丰富的UI组件和数据管理功能,包括数据存储(Store)和数据排序等高级特性。...

    extjs中文文档大全

    本文档集合包括了"ExtJS实用开发指南"、"EXT 中文手册"以及"Ext Core手册",涵盖了ExtJS的基础到高级开发知识。 1. **ExtJS实用开发指南**:此部分主要针对ExtJS的实际应用,包含如何快速上手、组件的使用、布局...

    Extjs中文文档

    Extjs中文文档,包含Extjs的基本语法和各个类的详细说明以及用法。

    ExtJs3.3中文API.CHM_extjs3.3中文文档_

    在"ExtJs3.3中文API.CHM"中,开发者可以找到关于ExtJS 3.3的所有API和类的详细描述,以及相关的示例代码。 ExtJS 3.3的核心特性包括: 1. **组件化**:ExtJS基于组件模型,提供了一系列预定义的UI组件,如按钮、...

    Extjs 中文API文档

    Extjs 中文API文档,有对Extjs相关API的中文说明

    ExtJs 4 API中文

    ExtJs 4 API 中文

    extjs中文解决方案/Eclipse下的js和ext开发

    ### ExtJS中文解决方案与Eclipse下的JS和EXT开发 #### 一、ExtJS中文解决方案 在使用ExtJS进行Web应用程序开发时,对于中文环境的支持是非常重要的。为了实现ExtJS中文化,我们需要按照以下步骤来进行配置。 1. *...

    extjs 前后台交互参数出现中文乱码问题的解决方法

    ### extjs前后台交互参数出现中文乱码问题的解决方法 #### 问题背景与原因分析 在使用MyEclipse开发工具进行Web应用开发时,尤其是采用ExtJS框架结合Ajax技术进行前后端数据交互的过程中,可能会遇到一个常见的...

    中文的Extjs的api手册

    4. **表格(Grid)**:ExtJS的表格组件支持大量的功能,如分页、排序、过滤、行编辑等,能处理大量数据并提供丰富的交互体验。 5. **表单(Form)**:表单组件提供了丰富的输入控件,如文本框、下拉框、日期选择器...

    extjs中文帮助文档和英文api

    在实际开发中,开发者可能会遇到的问题,如性能优化、调试技巧、错误处理等,这些文档都提供了相应的解决方案。同时,通过查阅API,开发者可以了解到如何自定义组件,扩展内置类,以适应项目特定的需求。 总之,...

    ExtJS3.0中文API

    绝对的ExtJS3.0中文API,本人在网上找了好久才找到的,在此奉献给大家!!解压后有30多兆!!

    extjs4中文文档

    EXTJS4是一个强大的JavaScript框架,主要用于构建富客户端Web应用程序。这个中文文档是EXTJS4的官方文档...同时,文档还可能涵盖了EXTJS4的升级、调试、性能优化等相关内容,帮助开发者解决实际开发过程中遇到的问题。

    extjs4 中文API

    extjs4.1 中文API

    extjs3.0中文API

    5. **Ajax操作**:ExtJS提供了一套完整的Ajax解决方案,包括XMLHttpRequest对象的封装、异步数据请求以及JSON和XML数据的解析。 6. **表格功能**:ExtJS 3.0的表格组件支持多列排序、分页、行编辑等功能,同时可与...

    Extjs,解决双重边框问题

    本文以标题"Extjs,解决双重边框问题"和描述为例,探讨如何在Extjs 2、3、4版本中自定义Panel边框并解决双重边框现象。 首先,让我们关注Extjs 4中的情况。在默认状态下,Panel和Window组件都有边框,当Panel作为...

    extJS4升级至extJS6.6所遇问题及解决方案

    项目进行前端框架升级——extJS 4升级至extJS6.6所遇的一些问题及相对应的解决方案建议

Global site tag (gtag.js) - Google Analytics