ExtJs 3.2下GridPanel排序问题 ExtJs 3.2下GridPanel最下面两行不参与排序,有没有知道怎么实现的啊,因为我是通过后台增加了小计、合计,其他列默认为空,但是其他列中如果也有空值,排序后,小计、合计的顺序就乱了,可能就在中间了,有没有方法让gridpanel最后两行不参与排序的方法或者是另外的实现的方式啊,请高手帮帮忙啊extjsgridgridpanel排序 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 给最后两行加上标志字段,然后重写排序算法,发现有标志字段的就直接返回相等(无论是正序还是逆序,相等都不会交换)Ext.data.Store.prototype.applySort = function() { var fn = function(r1,r2){//r1和r2表示行对象 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(v1.mask || v2.mask) return 0;//如果排序的行中某一行有标志,则不交换次序 return v1>v2?1:(v1<v2?0:1);//这是自己的排序算法,你可以按需要写 } this.data.sort(s.direction, fn); if(this.snapshot && this.snapshot != this.data) { this.snapshot.sort(s.direction, fn); }} 写错了一点:if(r1.mask || r2.mask) return 0;//你自己测一下怎么能给最后两行加上标志并能从record对象中获取 你这只是针对sortInfo的那一行,那其余行排序怎么弄?还有你现在这样写好像不对,出不来想要的效果 //自定义排序 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(r1.get('wareCode')=='<b>小计:</b>' || r2.get('wareCode')=='<b>小计:</b>'||r1.get('wareCode')=='<b>合计:</b>' || r2.get('wareCode')=='<b>合计:</b>'){ return 0; } 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); } } };这样写成功了,还是谢谢你啊 function 传递过来全数字变量首位0丢失怎么办? jquery获取多组复选框的值 鼠标移动DIV问题 网页怎么和本地的应用程序通讯 嵌套表格中取数据问题 如何不让用户复制我网页上的图片到本地啊 [江湖救急]为什么超级连接在firefox下有反映,在ie下没反应? 如何通过点击button按钮,获取隐藏的文本框值? 能否取得SWF文件的宽,高,文件大小? 请问如何实现以下功能? 80分请教两个遮罩层的遮盖顺序用什么属性定义(怎么实现) 百度地图API InfoWindow不会打开的问题
var fn = function(r1,r2){//r1和r2表示行对象
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(v1.mask || v2.mask) return 0;//如果排序的行中某一行有标志,则不交换次序
return v1>v2?1:(v1<v2?0:1);//这是自己的排序算法,你可以按需要写
}
this.data.sort(s.direction, fn);
if(this.snapshot && this.snapshot != this.data) {
this.snapshot.sort(s.direction, fn);
}
}
if(r1.mask || r2.mask) return 0;//你自己测一下怎么能给最后两行加上标志并能从record对象中获取
你这只是针对sortInfo的那一行,那其余行排序怎么弄?还有你现在这样写好像不对,出不来想要的效果
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(r1.get('wareCode')=='<b>小计:</b>' || r2.get('wareCode')=='<b>小计:</b>'||r1.get('wareCode')=='<b>合计:</b>' || r2.get('wareCode')=='<b>合计:</b>'){
return 0;
}
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);
}
}
};
这样写成功了,还是谢谢你啊