SmartGWT 之 TreeGrid 的拖拽排序

使用 ListGrid,当需要排序时,当然可以用上移下移这样的button来做排序。

不过,既然SmartGWT 支持鼠标的Drag and Drop排序,何乐而不为呢。

 

首先,要 setCanReorderRecords( true),这样才能支持鼠标拖拽排序。

其次,要将顺序持久化,就要将当前的顺序保存到服务端。ListGrid 有个 

addRecordDropHandler,本来想用这个,后来一看,这个是在drop 

之前调用的,这个时候还不知道drop之后的顺序,所以不行。后来找到

了一个 addDragStopHandler,终于是在排序之后调用的。接下来就

简单了,直接上代码:

 

        final DataSource ds = DataSource.get( "node");
        nodesGrid.setShowAllRecords( true);
        nodesGrid.setCanReorderRecords( true);
        nodesGrid.setSortField( "index");
        nodesGrid.addDragStopHandler( new DragStopHandler() {
            @Override
            public void onDragStop(DragStopEvent event) {
                final ListGridRecord[] records = nodesGrid.getRecords();
                for ( int i=0; i<records.length;i++) {
                    final ListGridRecord record = records[ i];
                    System.out.println( record.getAttribute( "name"));
                    record.setAttribute( "index", i);
                    nodesGrid.updateData( record);
                }
            }
        });

 

这样做还有个小问题,不是批量保存的,会影响效率,有待改进。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值