如何让grid的列 上下移动

我想在grid的bar上做个查询项,点击后把查询的结果 挪到grid的前面
请问有谁做过这样的东西的
没有做过的 提个思路 谢了
[b]问题补充:[/b]
我不想重新加载,就在已经加载的store上做处理,
就像点表头重新排序一样
[b]问题补充:[/b]

已经自己解决了 和下面两位提的方法差不多 不过还是谢谢两位
保证了 排序后 原来的 选择 有效

    var keyword = this.keyword.getValue();
    var ds = this.getStore();
    for(var i=0;i<ds.getCount();i++){
        if(ds.getAt(i).data.name.indexOf(keyword)>-1){
            var isIdSelected = this.getSelectionModel().isIdSelected(ds.getAt(i).id);
            var rowData = ds.getAt(i);
            ds.remove(ds.getAt(i));
            ds.insert(0, rowData);
            if(isIdSelected){
                this.getSelectionModel().selectRow(0,true);
            }
            this.getView().scrollToRow(0);
        }
    }

1.通过store.getCount()取出总条数;
2.循环把store中的数据读取出来(store.data.items[i]),放在一个数组中;
3.对数组进行排序,然后把排序后的结果放到store里。

在bar上添加控件,然后点击查询的时候再重新加载条件过滤后的结果。

用数据交换的方式移动,例如store 为 ds ,让fromIndex行和toIndex 交换,record 有一个字段“a”

          var torecord=ds.getAt(toIndex);
          var fromrecord=ds.getAt(fromIndex);
          var temp_a=fromrecord.get("a");

          fromrecord.set("a",torecord.get("a"));

          torecord.set("a",temp_a);

fromIndex行和toIndex 就交换了