关于EXT filter的解决方案

EXT官方的例子是针对PHP写的,对于java程序员所以我们需要改进一下,用firebug调试下我们发现,post到后台的数据的'name'很怪,java处理起来比较麻烦.看他的源代码我们发现buildQuery就是设置传到后台参数的方法.
其他的不变,改变如下:
var p = {};
for(var i=0, len=filters.length; i<len; i++) {
  var f = filters[i];
  var name = f.field;     
  var value = f.data['value'];
  if( value != null ){
    if(f.data['comparison']!=null){
      p[ name ] = f.data['comparison']+'@'+value;
    }else{
      p[ name ] = value;
    }
  }
}
return p;
这样的话我们在后台通过request.getParameter('username');就可以获得我们在filters设置的值,如
var filters = new Ext.grid.GridFilters({
  filters:[
   {type: 'string', dataIndex: 'username'},
   {type: 'string', dataIndex: 'password'},
   {type: 'string',  dataIndex: 'companyname'},
   {type: 'date', dataIndex: 'registdate'}
  ]
});
获得到了这些值后就是拼sql的事情了.

有个问题就是:我过滤后搜索结果正确,但是当我把该filter前的checkbox去掉的话,结果还是开始的搜索条件,当点击分页的刷新的时候数据又是正确的.今天太晚了,明天继续研究...哪位大侠也碰到这样的问题的话,希望也可以告诉我下.谢谢先!

你可能感兴趣的:(PHP,F#,ext,Firebug,firefox)