- 浏览: 332571 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
ProgrammingPower:
非常感谢您,搞定了,哈哈!
Debian下安装CodeBlocks -
hfa1s2:
是的。谢谢你哈! 我解决了这个问题
python模块之smtplib: 用python发送SSL/TLS安全邮件 -
huangro:
587端口的是很麻烦的,毕竟是需要ssl验证的。
python模块之smtplib: 用python发送SSL/TLS安全邮件 -
hfa1s2:
我想利用内网往公司邮箱里发,但接口是587 的 而且需要 SS ...
python模块之smtplib: 用python发送SSL/TLS安全邮件 -
zyb88325:
你好 我现在用的cakephp2.0,因为服务器不支持rewr ...
CakePHP常用技巧总结
首先,需要给所有需要排序的字段设置属性sortable: true,参考示例代码:
这样你就可以在客户端进行排序了。如果需要在服务器端进行排序,则需要设置属性 remoteSort: true, 参考示例代码:
现在,所有排序的信息将汇聚到PageMethodProxy,主要是两个:
* sort : 表示字段的id
* dir : 排序的方式(有两个 ASC 或 DESC)
或许需要修改下PageMethodProxy,参考如下:
服务器端查询排序程序主要写法如下(此处用ASP.NET)
// create the grid var grid = new Ext.grid.GridPanel({ el:'grid-products', width:405, height:300, title:'Adventure Works Products', store: store, stripeRows: true, loadMask: true, enableHdMenu: false, // grid columns columns:[{ header: "id", id: 'ProductID', dataIndex: 'ProductID', hidden:true },{ header: "Product Name", dataIndex: 'Name', width: 200, sortable:true },{ header: "Product Number", dataIndex: 'ProductNumber', width: 100, sortable:true },{ header: "Safety Stock Level", dataIndex: 'SafetyStockLevel', width: 100 }], // put paging bar on the bottom bbar: pagingBar });
这样你就可以在客户端进行排序了。如果需要在服务器端进行排序,则需要设置属性 remoteSort: true, 参考示例代码:
// create the Data Store var store = new Ext.data.JsonStore({ root: 'lstProducts', totalProperty: 'RowCount', idProperty: 'ProductID', fields: [ 'Name','ProductID', 'ProductNumber', 'ReorderPoint','SafetyStockLevel' ], remoteSort:true, proxy:pmProxy });
现在,所有排序的信息将汇聚到PageMethodProxy,主要是两个:
* sort : 表示字段的id
* dir : 排序的方式(有两个 ASC 或 DESC)
或许需要修改下PageMethodProxy,参考如下:
Ext.data.PageMethodProxy = function(config){ Ext.data.PageMethodProxy.superclass.constructor.call(this); Ext.apply(this, config); }; Ext.data.PageMethodProxy.TRANS_ID = 1000; Ext.data.PageMethodProxy.arr_trans = Array(); Ext.extend(Ext.data.PageMethodProxy, Ext.data.DataProxy, { load : function(params, reader, callback, scope, arg) { if(this.fireEvent("beforeload", this, params) !== false){ var p = Ext.apply(params, this.extraParams); var transId = ++Ext.data.PageMethodProxy.TRANS_ID; var trans = { id : transId, params : params, arg : arg, callback : callback, scope : scope, reader : reader }; if(typeof p.sort == "undefined") p.sort = ""; if(typeof p.dir == "undefined") p.dir = ""; eval("PageMethods." + this.pageMethod + "(p.start,p.limit,p.sort,p.dir,this.handleResponse)"); Ext.data.PageMethodProxy.arr_trans[Ext.data.PageMethodProxy.TRANS_ID] = trans; } else{ callback.call(scope||this, null, arg, false); } }, isLoading : function(){ return this.trans ? true : false; }, abort : function(){ if(this.isLoading()){ this.destroyTrans(this.trans); } }, handleResponse : function(o){ var trans = Ext.data.PageMethodProxy.arr_trans[Ext.data.PageMethodProxy.TRANS_ID]; var result; try { result = trans.reader.readRecords(o); }catch(e){ this.fireEvent("loadexception", this, o, trans.arg, e); trans.callback.call(trans.scope||window, null, trans.arg, false); return; } this.trans = false; trans.callback.call(trans.scope||window, result, trans.arg, true); } });
服务器端查询排序程序主要写法如下(此处用ASP.NET)
[System.Web.Services.WebMethod] public static ProductList GetProducts(int PageNumber,int MaximumRows,string SortColumnName, string SortDirection) { //calculating the start row index int Start = PageNumber + 1; //calculating the end row index int End = PageNumber + MaximumRows; ProductList productList = new ProductList(); //setting up sql connection to execute the query SqlConnection sqlConnection = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database.mdf;Integrated Security=True;User Instance=True"); sqlConnection.Open(); //setting up the command object with a parameterized query and sql connection using (SqlCommand command = new SqlCommand(GetQuery(SortColumnName,SortDirection), sqlConnection)) { //Creating Sql Start Paramter SqlParameter StartParameter = new SqlParameter(); StartParameter.DbType = DbType.Int32; StartParameter.ParameterName = "startRowIndex"; StartParameter.Value = Start; //Creating Sql End Parameter SqlParameter EndParameter = new SqlParameter(); EndParameter.DbType = DbType.Int32; EndParameter.ParameterName = "endRowIndex"; EndParameter.Value = End; //Adding Start Parameter to the command object command.Parameters.Add(StartParameter); //Adding End Parameter to the command object command.Parameters.Add(EndParameter); //Executing Reader using (IDataReader reader = command.ExecuteReader()) { //Creating a list of objects from the fetched rows while (reader.Read()) { productList.lstProducts.Add(ConstructProduct(reader)); } } } //closing the connection sqlConnection.Close(); //Assigning total row count for the given query so that it can //be used by the grid to set up total number of pages productList.RowCount = GetRowCount(); return productList; } private static String GetQuery(String ColumnName,String SortDirection) { StringBuilder stringBuilder = new StringBuilder(); stringBuilder.Append(" SELECT * FROM ( "); if(!ColumnName.Trim().Equals(String.Empty) && !SortDirection.Trim().Equals(String.Empty)) stringBuilder.Append(" SELECT ROW_NUMBER() OVER (ORDER BY "+ColumnName.Trim().ToUpper()+" "+ SortDirection.Trim().ToUpper()+") AS row_num,ProductID,[Name],ProductNumber,SafetyStockLevel,ReorderPoint "); else stringBuilder.Append(" SELECT ROW_NUMBER() OVER (ORDER BY (SELECT 0)) AS row_num,ProductID,[Name],ProductNumber,SafetyStockLevel,ReorderPoint "); stringBuilder.Append(" FROM Product "); stringBuilder.Append(" ) AS TempTable WHERE row_num>=@startRowIndex AND row_num<=@endRowIndex "); return stringBuilder.ToString(); }
评论
4 楼
huangro
2010-10-08
最好是参照extjs的api来做: http://dev.sencha.com/deploy/dev/docs/
我没碰到过json数据源不能排序的问题, 你是否可以提供数据源瞧瞧?
我没碰到过json数据源不能排序的问题, 你是否可以提供数据源瞧瞧?
3 楼
天涯海角tour
2010-09-25
知道了,谢谢,
2 楼
天涯海角tour
2010-09-25
为什么 我用XML数据源就可以排序,用json就不行呢,
1 楼
天涯海角tour
2010-09-25
PageMethodProxy 在哪里啊,找不到啊
发表评论
-
Openflashchart Json 数据格式
2011-01-31 14:44 1385{ "elements": [ { & ... -
OpenFlashChart中Json格式
2010-11-25 13:31 1425数据文件必须是JSON格式 ... -
Flowplayer的openx广告插件
2010-11-05 15:09 2486flowplayer上使用openx广告的方法: $f( ... -
setTimeout和setInterval之间的异同
2010-07-22 10:15 1085这两个方法都可以用来 ... -
Javascript 操作 Cookie
2010-07-06 16:16 970Cookie 是维护客户端状态的解决方案之一,在大多数服务器端 ... -
Javascript对象继承
2010-03-18 12:58 11281. 原型继承法 <html xmlns=" ... -
Javascript base64
2009-12-18 14:51 1290From: http://www.webtoolkit.inf ... -
JS中Date方法列表
2009-11-09 14:04 2974Date 对象的方法 FF: Firefox, N ... -
EXT JS中的对象选择
2009-10-25 23:39 1662本文转至: http://hi.baidu.com/winds ... -
基于Jquery的dialog插件
2009-06-10 14:23 3868做网站的时候经常需要用到弹出窗体显示一些信息,然而网络上找到的 ... -
JS实现网站多语言选择功能
2009-06-09 16:22 4583需要导入的文件有: 1. jquery-1.3.2.min. ... -
Jquery应用技巧小结
2008-10-09 18:19 865jquery技巧应用小结 1.1、概述 随着WEB ... -
jQuery Ajax 全解析
2008-10-09 18:30 1089本文地址: jQuery Ajax 全解析 本文作者:Q ... -
Jquery掩码插件
2008-10-20 14:52 1179在最近项目中需要用到一些输入过滤,很自然的就想到需要使用掩码来 ... -
JSON的基本格式
2008-10-23 19:00 1493JSON的基本格式如下,图片来自json.org : ... -
js常用正则表达式实例
2008-11-03 15:54 962匹配中文字符的正则表达式: [\u4e00-\u9fa5] ... -
Jquery使用方法的一些总结
2008-11-19 14:14 11641. 判断ID在网页中是否存在(比如id="user ...
相关推荐
在EXTJS开发中,我们经常会遇到使用Grid组件展示数据的情况,特别是当数据包含中文字符时,可能会遇到排序问题。EXTJS Grid默认的排序机制对于英文字符处理得较好,但对于中文字符,由于编码和比较规则的不同,可能...
1. **EXTJS Grid组件**:EXTJS Grid是EXTJS的核心组件之一,它允许开发者创建可分页、可排序、可过滤的数据表格。Grid可以与各种数据源(如JSON、XML或内存中的数组)配合使用,并通过Store对象进行数据的加载和管理...
在ExtJs框架中,Grid组件是一种非常常用的展示数据表格的方式,它提供了丰富的功能,包括数据的排序、分页、过滤以及行选择等。在实际应用中,经常需要根据用户交互来判断Grid中的行是否被选中,以便进行下一步的...
EXTJS Grid提供了丰富的功能,包括分页、排序、过滤、编辑等,使得用户可以高效地管理和处理数据。EXTJS 4.2.1是EXTJS的一个稳定版本,它包含了多项改进和新特性,以提升用户体验和开发者的工作效率。 在EXTJS ...
ExtJS Grid是Sencha ExtJS框架中的一个核心组件,它用于构建数据驱动的表格视图。Grid组件在Web应用中广泛使用,因为它提供了强大的数据展示、排序、分页、筛选和编辑功能。以下是对`ExtJS Grid`示例代码的详细解析...
EXTJS Grid是一款强大的数据展示组件,广泛应用于Web应用开发中,尤其在数据密集型界面设计时,EXTJS Grid以其高效的数据加载、灵活的分页、排序、过滤和自定义功能而受到开发者青睐。本总结例子将深入探讨EXTJS ...
ExtJS Grid是一款强大的数据展示组件,常用于构建复杂的Web应用程序中的数据网格。多表头插件是ExtJS Grid的一个重要特性,它允许我们创建具有多层次、复杂结构的表头,以便更好地组织和呈现数据。在ExtJS Grid中,...
ExtJS Grid 分页是Web应用中数据展示的重要组成部分,它允许用户高效地浏览大量数据而无需一次性加载所有记录。在本文中,我们将深入探讨ExtJS Grid的分页功能及其实现方式。 首先,ExtJS Grid是一种强大的...
Grid提供了丰富的功能,包括分页、排序、过滤、编辑等,是ExtJS库中的核心组件之一。"Extjs Grid 扩展实例"是一个演示如何增强Grid功能的实践案例,通过这个实例,我们可以学习到如何在原有Grid的基础上进行自定义...
ExtJs中文排序函数方法详解 在ExtJs框架中,实现中文排序功能是一件非常重要的事情。今天,我们将详细介绍如何使用ExtJs实现中文排序,特别是使用Ext.data.Store.prototype.createComparator()函数来实现中文排序。...
- **Grid Panel**:是ExtJS中的一个核心组件,用于显示二维数据,可以进行排序、筛选、分页等操作。 - **Store**:存储Grid的数据,可以是从服务器获取的JSON、XML或Array格式的数据,也可以是本地数据。 - **...
这篇“ExtJS笔记——Grid实现后台分页”探讨了如何在ExtJS的Grid组件中实现高效的后台分页功能。 后台分页是一种常见的数据处理策略,特别是在大数据量的情况下,它将数据分批加载,避免一次性加载所有记录导致的...
Grid可以动态加载数据,支持排序、分页、筛选等多种功能。 2. **DragDrop API**:ExtJS内置了DragDrop API,允许开发者实现元素之间的拖放操作。你需要创建DragSource和DropTarget对象,分别对应拖动的源Grid和接收...
在给定的"Extjs4 grid使用例子"中,我们可以深入理解如何在MVC架构下有效地利用ExtJS4的Grid组件。Grid组件是ExtJS中的核心部分,它提供了一个灵活的、可定制的数据展示网格,通常用于显示和操作大量数据。 1. **...
在ExtJs中,Grid组件是展示大量数据的重要工具,它提供了丰富的功能,包括排序、分页、筛选等。当需要将Grid中的数据导出到Excel时,可以采用两种方法,这些方法在ExtJs 4.2版本中已经得到很好的支持。 **方法一:...
包括如何设置Spring Boot项目,定义JPA实体,配置数据源和事务管理,使用Spring Data JPA的仓库接口,以及在ExtJS中创建Grid,绑定数据源,实现分页和排序功能。这样的项目有助于提升开发者在前后端数据交互、UI设计...
EXTJS Grid支持自定义表头菜单,用户可以通过右键点击表头来选择排序、隐藏列等操作。开发者可以自定义这个菜单,添加更多功能,如列过滤、列锁定等。 6. 数据源绑定: EXTJS Grid的数据通常来源于Store,一个数据...
对于GridPanel中拖动选中行排序的实现,网上有不少ExtJs实现的例子,但是没有找到使用Ext.net实现的,正好最近有个需求要使用,干脆来写一个。 DEMO功能说明: 1、拖动GridPanel选中行到新位置排序。 2、在拖动结束...
在EXTJS Grid中,数据通常以行和列的形式呈现,支持排序、分页、过滤、拖放等功能。 在你的问题中,你提到了“静态EXTJS GRID”并指出中文提示存在问题,特别是表头菜单中的列显示不正常。这可能涉及到以下几个方面...
Grid Panel是ExtJS中的一个核心组件,它允许开发者以表格的形式展示大量数据,并提供多种交互功能,如排序、分页、筛选等。在基于ExtJS Form表单的项目中,Grid Panel通常用于显示和编辑由Form表单收集或处理的数据...