树形结构组件变为多选方法

树形结构组件变为多选方法

一、需求描述

根据需求的需要,合同信息查询界面中的地点检索条件要实现可以进行多地点的选择,并根据多选的地点查询出相应的检索结果。要求的地点多选如图所示。

树形结构组件变为多选方法_第1张图片

二、实现方法

      合同信息查询界面中的地点是树形结构,定义地点的代码如下:

   var tree = new Ext.tree.TreePanel({

      loader: new Ext.tree.TreeLoader({

        baseAttrs: {},

        dataUrl: '../bp/common.do?reqCode=queryProjectLocationTree'

      }),

      title: '',

      id: 'locationTree',

      root: root,

      rootVisible: false,

      autoScroll: true, // 内容溢出时产生滚动条

      animate: false,

      tbar: [new Ext.ux.form.SearchField({

        width: 115,

        emptyText: '快速检索',

        id: 'queryname',

        onTrigger1Click: function () {

           //alert(111);

        },

        onTrigger2Click: function () {

           findByKeyWordFiler();

        }

      })]

   });

      注意构造树形内容的action请求dataUrl,进入到此anction方法中,其中一定会有获取树形节点数据的逻辑代码,在获取树形节点数据代码后,需要添加一段代码。

List finalList = new ArrayList();

      for(inti = 0; i < list.size(); i++){

        Dto node = (BaseDto) list.get(i);

        if(node.getAsString("checked").equals("1")){

           node.put("checked", true);

        }else{

           node.put("checked", false);

        }

        finalList.add(node);

      }

      list变量是之前获取到的树形内容数据集合;遍历这个集合,并在每一个节点上添加checked属性,无论赋值checked属性值是true或false都会在树形节点前显示多选框。finalList变量存储的是添加多选框后的树形节点数据;完成节点的修改后,需要将新产生的属性节点数据进行json字符串的转化并写入到前台页面。

String jsonString =

JsonHelper.encodeObject2Json(finalList);

super.write(jsonString, response);

      完成上面的代码后,地点树形节点就可以多选了。

你可能感兴趣的:(ExtJS)