Ext Direct Spring Tree Load Method

6 篇文章 0 订阅


Server

TREE_LOAD想trees提供数据。Ext JS 3.x的Ext.tree.TreeLoader和Ext JS 4.x的类Ext.data.TreeStore调用tree load方法。这个方法必须返回一个树形结果。树节点应该包含id,

text和leaf属性,leaf属性是false或true取决该节点是否还有子节点。

@Service
public class TreeProvider {

  public static class Node {
    public String id;
    public String text;
    public boolean leaf;
  }

  @ExtDirectMethod(value = ExtDirectMethodType.TREE_LOAD, group = "tree")
  public List<Node> getTree(@RequestParam(value = "id", required = false) String id,
      @RequestParam(value = "foo", required = false, defaultValue = "defaultValue") String foo) {

    List<Node> result = new ArrayList<Node>();
    //...
    return result;
  }

}

客户端发送到服务器端信息包含id字段,
id字段是客户端必须的。参数的名称必须跟TreeStore的配置参数nodeParam或TreeLoader的配置参数'nodeParameter'一致。

第一次客户端会发送一个Id为“root”参数到服务器。服务器端直接返回加载所有直接的子节点。这种方式需要实现按显示需要加载树节点。


一个TREE_LOAD方法必须返回一个对象如果包含根节点,没有根节点必须返回一个集合或数组。

该方法也可以处理其它请求参数。参数必须添加@RequestParam注解如果代码编译时没有带调试信息或函数参数名更请求参数不一致。value属性必须跟请求参数名称一致。如果参数有可能没有属性值,支持默认值或注解@RequestParam必须有值注解,工作方式跟SpringMVC一致。此外,还支持服务器对象参数。

Client Ext JS 3.x

Ext.tree.TreeLoader的职责是从服务器方法加载数据。nodeParameter定义id属性的名称并且必须跟服务器端方法一致。paramsAsHash的值必须为true。

myTreeLoader = new Ext.tree.TreeLoader( {
      directFn: treeProvider.getTree,
      nodeParameter: 'id',
      paramsAsHash: true,
      baseAttrs : {
        foo: 'empty'
      }
    });

  var tree = new Ext.tree.TreePanel( {
    //...
    root: {
      id: 'root',
      text: 'Root'
    },
    loader: myTreeLoader,
    //...
  });

Client Ext JS 4.x

Ext JS 4.x同过类Ext.data.TreeStore加载tree所需的数据。nodeParameter定义id属性的名称并且必须跟服务器端方法一致。

var store = Ext.create('Ext.data.TreeStore', {
    nodeParam: 'id',
    proxy: {
      type: 'direct',
      directFn: treeProvider.getTree,
      extraParams: {
        foo: new Date()
      }
    }
  });

  var tree = Ext.create('Ext.tree.Panel', {
    store: store,
    //...
  });


Examples

http://demo.rasc.ch/eds/extjs3/tree.html
http://demo.rasc.ch/eds/extjs42/tree.html
http://demo.rasc.ch/eds/extjs41/tree.html




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值