`

EXT js -------Tree之1:n

阅读更多


业务层方法

public String query() {

List<Role> list = roledao.query();

List<Map<String,Object>> rolelist = new ArrayList<Map<String,Object>>();

for (Role role : list) {

Map<String,Object> roles= new HashMap<String, Object>();

roles.put("id", String.valueOf(role.getRid()));

roles.put("text", role.getName());

roles.put("cls", "folder");

List<Map<String,Object>> userlist =new ArrayList<Map<String,Object>>();

for (Users users : role.getUsers()) {

Map<String,Object> user=new HashMap<String, Object>();

user.put("id", String.valueOf(users.getId()));

user.put("text",users.getUsername());

user.put("leaf", true);

//包含checked属性时, 生成的树中带有复选框

user.put("checked", false);

userlist.add(user);

}

roles.put("children", userlist);

rolelist.add(roles);

}

// Map<String,List<Map<String,Object>>> map= new HashMap<String, List<Map<String,Object>>>();

// map.put('root',rolelist );

return JSONArray.fromObject(rolelist).toString();

}


控制层方法

public class RoleAction implements Action {

private IRoleService rsi;

private String json;//注入json


public String getJson() {

return json;

}


public void setJson(String json) {

this.json = json;

}


public void setRsi(IRoleService rsi) {

this.rsi = rsi;

}


public String execute() throws Exception {

// TODO Auto-generated method stub

return null;

}

public String query(){

json=rsi.query();//赋值

return SUCCESS;

}

}


js文件读取json数据

Ext.onReady(function() {

var tree = new Ext.tree.TreePanel( {

renderTo : 'tree-div',

title : '用户权限表',

height : 768,

width : 1024,

useArrows : true,

autoScroll : true,

animate : true,

enableDD : true,

containerScroll : true,

rootVisible : false,

frame : true,

root : {

nodeType : 'async',

setRootNode: 'root',

id:'root'

},


// auto create TreeLoader

dataUrl : 'queryAll.action',


listeners : {

'checkchange' : function(node, checked) {

if (checked) {

node.getUI().addClass('complete');

} else {

node.getUI().removeClass('complete');

}

}

},


buttons : [ {

text : 'Get Completed Tasks',

handler : function() {

var msg = '', selNodes = tree.getChecked();

Ext.each(selNodes, function(node) {

if (msg.length > 0) {

msg += ', ';

}

msg += node.text;

});

Ext.Msg.show( {

title : 'Completed Tasks',

msg : msg.length > 0 ? msg : 'None',

icon : Ext.Msg.INFO,

minWidth : 200,

buttons : Ext.Msg.OK

});

}

} ]

});


tree.getRootNode().expand(true);

});


jsp页面

<html>

<head>

<title>Checkbox TreePanel</title>

<link rel="stylesheet" type="text/css" href="ext-3.2.1/resources/css/ext-all.css" />

<script type="text/javascript" src="ext-3.2.1/adapter/ext/ext-base.js"></script>

<script type="text/javascript" src="ext-3.2.1/ext-all.js"></script>

<script type="text/javascript" src="js/check-tree.js"></script>

</head>

<body>

<div id="tree-div"></div>

</body>

</html>

 

分享到:
评论

相关推荐

    unigui0.83.5.820

    - Upgraded to Latest Ext JS release (3.3.0) - UniTrackBar: Set Max at runtime - UniDBGrid: DataSet AfterEdit: Reload grid only when needed - New Demo: Chart Demo 0.79.1.788 +----------------------...

    Ext Tree 3.2.1

    Ext Tree 3.2.1 是一个用于构建交互式树形结构的JavaScript库,它是Ext JS框架的一个组件。Ext JS是一个强大的客户端JavaScript库,用于创建富互联网应用程序(RIA)。在这个3.2.1版本中,它包含了完整的源代码、...

    Ext.js教程和Ext.js API

    Ext.js 是一个强大的JavaScript库,专门用于构建富客户端的Web应用程序。它提供了丰富的用户界面组件和数据绑定功能,使得开发者可以构建出具有桌面应用级别的交互式网页应用。本教程和API文档聚焦于Ext.js 3.0版本...

    Ext拖动实例树和表格全 超实用

    本文主要针对Ext JS中的树(Tree)和表格(Grid)控件进行深入探讨,详细介绍其拖拽功能的实现原理及应用场景。 #### 二、拖拽功能概述 在Ext JS中,拖拽功能主要通过`DragSource`和`DropTarget`两个核心概念来实现。 -...

    EXT 3.2.1 Demo 最全实例

    EXT 3.2.1是Ext JS库的一个版本,它是一个强大的JavaScript框架,主要用于构建富客户端Web应用程序。这个"EXT 3.2.1 Demo 最全实例"包含了一系列的示例,展示了EXT JS 3.2.1版本的各种功能和组件,帮助开发者深入...

    Ext+3.1~3.3-中文API文档.rar

    ExtJS是一个广泛使用的JavaScript库,特别适用于构建富客户端应用程序。这个文档压缩包“Ext+3.1~3.3-中文API文档.rar”包含了ExtJS从版本3.1到3.3的中文API文档,这对于开发者来说是极其宝贵的资源,因为它们提供了...

    ext 3.0 中文

    EXT 3.0 是一个流行的JavaScript库,专用于构建富互联网应用程序(Rich Internet Applications, RIA)。这个库提供了丰富的组件和功能,使开发者能够创建功能强大、交互性强的Web界面。EXT 3.0 中文版是EXT 3.0的...

    n多树型菜单大集合,struts树 jquery树 dttree等

    5. **EXT Tree**: ExtJS是Sencha公司的一款强大的JavaScript框架,用于构建富客户端应用程序。EXT Tree是其内置的一个组件,提供了丰富的功能和高度的可定制性。EXT Tree支持JSON数据源,可以实现复杂的树形布局和...

    Ext3.0 中文API.CHM

    Ext3.0中文API.CHM是一个关于Ext JavaScript库的离线帮助文档,它包含了Ext3.0版本的所有中文API详细信息。这个CHM文件(Compiled Help Manual)是微软开发的一种帮助文档格式,用户可以通过它方便地查找和学习Ext库...

    checkbox tree extjs2

    var tree = new Ext.tree.TreePanel({ title: 'Checkbox Tree', width: 300, height: 300, autoScroll: true, rootVisible: false, checkboxModel: true, useSimpleItems: false, ... }); ``` 接下来,你...

    Ext3.0中文API

    1. **类体系结构**:Ext3.0采用面向对象的编程方式,其类系统基于JavaScript的原型继承。文档会展示各个类之间的层级关系,如Container类是许多UI组件的基础,而GridPanel则继承自Container,增加了表格展示功能。 ...

    利用Ext来实现的静态树(一次加载所有节点的树)

    if (i == clist.size() -1) {//last row result += genChildTest(list,n) +" ] \n"; } else if( i ==0 ){//first row result += " [ "+ genChildTest(list,n) +"," ; } else {//middle row result += ...

    Ext2.0英文API文档

    Ext2.0是一个广泛使用的JavaScript库,主要用于构建富互联网应用程序(Rich Internet Applications,RIA)。它提供了丰富的组件模型、数据绑定机制以及高效的用户界面框架。这个API文档是开发者理解和使用Ext2.0的...

    testlink-1.9.3.tar

    - Fully support of N-level nested tree of requirements specifications. - Requirements relations - Requirements versioning - Requirements version comparison - Requirement freeze - URL Links from ...

    extjs3把数据导出至excel

    首先,EXTJS3是一款基于JavaScript的富客户端框架,它提供了丰富的组件库,包括Grid、Form、Tree等,用于构建交互式Web应用。在EXTJS3中,我们主要利用Grid组件来展示数据,并通过特定的方法将其转换为Excel格式。 ...

    jsp页面树形结构的生成.pdf

    Ext JS是一个用于构建富互联网应用程序(RIA)的JavaScript框架,它提供了许多组件,包括树形控件。在示例中,`Ext.tree.TreeNode`用于创建树节点,`Ext.tree.TreePanel`用于创建包含这些节点的可交互的树形面板。 ...

    ExtJs 最新最全中文API帮助文档 CHM版

    ExtJS 是一个强大的JavaScript应用程序框架,专为构建富互联网应用(RIA)而设计。这个“ExtJs 最新最全中文API帮助文档 CHM版”包含了关于ExtJS 3.0版本的所有API信息,使得开发者无需在线查找,即可在本地进行离线...

    ExtJs3.1目前所有例子源代码

    ExtJs 是一个流行的JavaScript库,专门用于构建富客户端应用程序。版本3.1是该库的一个重要里程碑,提供了许多功能和改进。在这个压缩包中,包含了ExtJs 3.1的所有示例源代码,这对于初学者和有经验的开发者来说都是...

    extjs.3.0中文API

    ExtJS是一个广泛使用的JavaScript库,特别适用于构建富客户端应用程序。3.0版本是该库的一个重要里程碑,提供了许多功能和改进。这篇文档将详细介绍ExtJS 3.0的中文API,帮助开发者更好地理解和使用这个框架。 一、...

Global site tag (gtag.js) - Google Analytics