Home
JavaEE
Java GUI
Framework
DHtml
Android
插画
教程下载

ATOM 2.0   RSS 2.0
Add to iGoogle Add to Live.com
  • 今天终于收到金山快盘的邀请码
  • 利用最短ie判断在不同浏览器上播放背景音乐
  • 对插画方面的一点感受与回忆
  • 网上看到的两个死里逃生的图片,记录一下
  • 今天开通了糖果社区,附几个激活码
  • 终于可以实现我的多个微博实时同步了
  • 备案和现场拍照就是对站长们的瞎折腾
  • 对Android在互联网应用开发上的纠结
  • 收藏夹中的书签都没了,决定写一个自已的书签管理器
  • 测试自已整理的本机的webapps客户端发送博文能否成功。
  • 今天开通了糖果社区,附几个激活码
  • 终于可以实现我的多个微博实时同步了
  • 备案和现场拍照就是对站长们的瞎折腾
  • 昨天借用飞姐的佳作做的一个浪漫爱情网页
  • 有几个腾讯微博的邀请码(实时更新)
  • BB的网站移到了GAE-JAVA上了
  • 一个基于GAE Python Web.py和JQuery的留言本程序
  • 类许愿墙的一个告白网站和一个电子书网站
  • Android中用Bitmap获取图片中某个区域的图象
  • 对暴力破解带密码的QQ相册的可行性分析
  • 对淘宝web旺旺版一些通讯接口的研究

对Extjs的GridFilters的完美重写

posted by David Chen at June 26, 2008, 8:11 AM    

extjs提供的GridFilters生成的参数是这样的格式,不是php,非常难处理,特别深入看了它的源码,找到了重写的
方法,把生成的参数做成一般的格式,以方便java的处理.
原来的参数形式
parameterName parameterValue
filter[0][data][value] 55
filter[0][data][type] numeric
filter[0][field] id
filter[0][data][comparison] eq
是不是很乱,很头痛, 悔涩难懂,, 我更不知在java中如果去处理这种字串了,..汗一个...
改写后生成的参数形式
userTye 100,101
schoolId 2,8
sex 男,女
这种形式,比较易看懂吧 ...呵呵..

// 这里是引入图片的设置,
Ext.menu.RangeMenu.prototype.icons = {
gt: '../../extjs/img/greater_then.png',
lt: '../../extjs/img/less_then.png',
eq: '../../extjs/img/equals.png'
};
Ext.grid.filter.StringFilter.prototype.icon = '../../extjs/img/find.png';
//Ext.state.Manager.setProvider(new Ext.state.CookieProvider());
//用cookie记下filter的输入或选择, 最好不要设置,不设的话,刷新时就不会自动填充以前的输入

var filters = new Ext.grid.GridFilters({
// 重写该方法,使用生成的参数为一般的格式, 需要自定义可选的paramName和paramValue属性
buildQuery: function(filters) {
// filters 就是getFilterData返回的值, 代码中push入去的对象
var p = {};
for(var i=0, len=filters.length; i<len; i++) {
var f = filters[i];

// 取得在GridFilters中定义的filters中的一个filter
var filter = this.getFilter( f.field );
// 取得传递到server的参数名称
var name = (filter.paramName ? filter.paramName : filter.dataIndex);
var value = (filter.paramValue ? filter.paramValue : f.data['value']);

if( value != '' ) p[ name ] = value;
}
return p;
},
filters:[ // 这些列应和grid中的columns对应,而不应和store对应
{type: 'string', dataIndex: 'userName', active: false },
{type: 'string', dataIndex: 'name', active: false},
{type: 'string', dataIndex: 'sex', active: false},
{
type: 'list', // 定义为list类型
active: false,
dataIndex: 'sex',
options: [ ['男', '男'], ['女', '女'] ],
phpMode: true // 如果是list,一定要开启为true, 不然多个checkbox只传第一个选中的值
},
{
type: 'list', // 定义为list类型
active: false,
dataIndex: 'userTypeName',
paramName: 'userType', // 自定义一个属性
options: [ [100, '管理员'], [101, '校长'], [102, '老师'], [103, '学生'], [104, '其它'] ],
phpMode: true
},
{
type: 'list', // 定义为list类型
active: false,
dataIndex: 'schoolName',
paramName: 'schoolId',
labelField: 'schoolName', // 对应xml中的某一个Item的el名
store: new Ext.data.Store({
url: '../school/schoolAction.evi?method=selectAllSchool',
fields: ['id', 'schoolName'],
reader: new Ext.data.XmlReader(
{ record: "Item", id: 'schoolId' },
[ { name: 'schoolId', mapping: 'schoolId' },
{ name: 'schoolName', mapping: 'schoolName' } ]
)
}),
phpMode: true
}
]});
// 以上代码的结果是, 这种结果完全符合java的使用。
userTye 100,101
schoolId 2,8
sex 男,女
Labels:   ExtJs    DHtml  
Trackback:   http://cwq.iou1314.com/extjs-gridfilters_a324
微博最近更新
[2010-07-31 16:33]    今天下午又将昨天赢的哎齐出来了,郁闷,一进一出,要有入没出才行啊。
[2010-07-31 07:40]    昨晚又去啊泄度开台,呢次赢左差唔多3旧水,下周星期一请假,回郁南去转社保和入党资料。
本站内的任何文章,只代表个人意见或学习所用,如有版权声明,请尊重作者的劳动成果,在转载时请保留原始链接并注明出处。
Power by David's PhpCms, © 2007 - 2010 CWQ.IOU1314.COM All Rights Reserved.