这里仅仅是一个树控件的展现而已,并没有做其他操作,其目的主要是熟悉使用ExtJS实现树结构数据的展现。里面的一些具体参数的含义参照文档,这里我就把一些需要增加或修改地方的代码贴出来:
组织机构实体类:
@Entity
@Table(name="T_Org")
public class Organization {
@Id
@GeneratedValue
private Integer id;
private String name;
@Column(unique=true)
private String sn;
private String description;
@ManyToOne
@JoinColumn(name="pid")
private Organization parent;
//如果使用ExtJS,可以考虑不加载
@OneToMany(mappedBy="parent")
@LazyCollection(LazyCollectionOption.EXTRA)
private Set<Organization> children;
//在界面上显示的文本
public String getText(){
return name;
}
//是否是叶子节点
public boolean getLeaf(){
if(getChildren().size() == 0){
return true;
}
return false;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSn() {
return sn;
}
public void setSn(String sn) {
this.sn = sn;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public Organization getParent() {
return parent;
}
public void setParent(Organization parent) {
this.parent = parent;
}
public Set<Organization> getChildren() {
return children;
}
public void setChildren(Set<Organization> children) {
this.children = children;
}
}
下面是请求action类:
@Controller("orgAction")
@Scope("prototype")
public class OrgAction extends BaseAction implements ModelDriven{
private Organization org;
private int parentId;
@Resource
private OrgManager orgManager;
//从界面上传递过来的参数
private String node;
//打开机构树
public void execute(){
int pid = 0;
//首次加载node为空,则将异常忽略掉
try {
pid = Integer.parseInt(node);
} catch (Exception e) {
}
PagerModel pm = orgManager.searchOrgs(pid);
toJSON(pm.getDatas());
}
public Object getModel() {
if(org == null){
org = new Organization();
}
return org;
}
public Organization getOrg() {
return org;
}
public void setOrg(Organization org) {
this.org = org;
}
public int getParentId() {
return parentId;
}
public void setParentId(int parentId) {
this.parentId = parentId;
}
}
下面贴出js文件:注意这里的nodeType: 'async',//异步请求,参数并未起作用,主要原因是由我们在实体类中设置了双向关联,hibernate加载数据时一块给加载了。
Ext.BLANK_IMAGE_URL = 'ext-3.1.1/resources/images/default/s.gif';//指定空白图片的位置,不指定会从网上查找
Ext.onReady(function(){
Ext.QuickTips.init();
var Tree = Ext.tree;
var tree = new Tree.TreePanel({
useArrows: true,
autoScroll: true,
animate: true,
enableDD: true,
containerScroll: true,
border: false,
rootVisible: false,//是否显示root
// auto create TreeLoader
dataUrl: 'org.action',
root: {
nodeType: 'async',//异步请求
text: '机构信息',
draggable: false,//是否可以拖放
id: 'src'
}
});
tree.on("click",
function(node,e){
alert("你点击的机构ID是:"+node.id);
}
);
// render the tree
tree.render('orgtree');
//tree.getRootNode().expand();
});
页面:
<div id="orgtree"></div>
下面来看看效果图吧:
- 大小: 19.3 KB
分享到:
相关推荐
在EXTJS这个强大的JavaScript框架中,时间控件是开发者经常使用的组件之一,尤其在构建复杂的Web应用程序时。EXTJS的时间控件允许用户选择或输入时间,通常以小时、分钟和秒为单位,提供了用户友好的界面和丰富的...
详细说明了extjs中的树控件,正确无误的说明extjs树控件的强大之处
Extjs DateField控件 - 只选择年份(找了很久发现网上只有选择年月的控件,于是基于extjs年月控件设计了只选择年份的控件)
在ExtJS中,下拉列表树控件(ComboBox Tree)是常见的组件之一,它结合了下拉列表和树结构,提供了更丰富的用户界面。这个控件允许用户从一个层级化的数据结构中进行选择,非常适合于展示有层次关系的数据。 在创建...
在"extjs网页控件开发"中,我们主要关注的是使用ExtJS来创建高效的网页组件,如图表和多级联动下拉列表框。这些控件能够显著提升用户界面的交互性和用户体验。 首先,让我们深入探讨ExtJS中的图表控件。ExtJS提供了...
在EXTJS中,时间控件是常见的交互元素,允许用户选择特定的时间,包括年、月、日、时、分和秒。这篇文档将深入探讨EXTJS中的时间控件及其使用方法。 首先,EXTJS时间控件的设计理念是为了提供用户友好的时间选择...
在EXTJS中,树形控件(Tree)是一种常见的数据展示方式,用于组织层次结构的数据。树形控件可以被广泛应用于文件系统、组织架构、菜单等场景。当我们需要在这些大量的层次数据中查找特定信息时,搜索功能就显得尤为...
自己新写的extjs年份控件,直接new Ext.ux.MyYear 即可使用
在ExtJS中,微调控件(Spinner)是一种用户界面组件,它允许用户通过点击向上或向下的箭头以微小增量增加或减少数值,常见于输入框旁边,提供一种方便的数值调整方式。这个控件在处理精确输入或者范围限制的数值时...
在这个特定的情况下,我们讨论的是一个定制的下拉树菜单控件——ComboBoxTree,它在ExtJS4中实现了单选和多选功能,并且具备展开选中指定节点的能力。这个控件在实际项目中已经被广泛使用并证明了其稳定性和实用性,...
extjs ip控件 extjs ip控件 extjs ip控件 extjs ip控件 extjs ip控件
在这个名为"ExtJS时间控件、IP输入控件【控件】"的压缩包中,我们可以找到实现这两个特定功能的示例代码。 1. **ExtJS时间控件**:此控件允许用户方便地选择和输入时间。在ExtJS中,时间控件通常由`Ext.picker.Time...
在本篇《ExtJS4学习笔记十一:树控件的使用》中,我们将深入探讨ExtJS框架中的树形控件(TreePanel),这是一种强大的UI组件,用于展示层次结构的数据。ExtJS4对树控件的功能进行了增强,使其更加灵活且易于使用。...
ExtJs图片按钮控件是ExtJs框架中一种增强的按钮组件,它允许开发者在按钮上显示图片,以提供更丰富的用户界面。这个控件通常用于创建具有视觉吸引力的交互式UI元素,比如导航按钮或者操作按钮。下面我们将深入探讨...
extjs的年月选择控件,主要针对原有的extjs Datefield控件的基础上增加了插件
- 使用`listeners`配置项可以监听控件的渲染事件,从而在渲染完成后应用自定义样式。 6. **国际化支持** ExtJS 支持多语言环境,包括时间格式的本地化。通过设置全局的`Ext.locale`或在时间控件中指定`locale`...
在ExtJS中,搜索控件和插件是提升用户体验、实现高效数据查找的关键元素。本篇将深入探讨这些知识点,以帮助你更好地理解和应用。 首先,我们要了解`SearchField.js`在这个上下文中的作用。通常,这是一个自定义...
ExtJS UI控件是用于构建丰富、交互性强的Web应用程序的JavaScript库,它与ASP.NET 3.5结合使用,可以为开发人员提供强大的前端开发工具。在ASP.NET 3.5框架下,ExtJS控件能帮助开发出具有桌面应用般体验的网页应用。...
在"ExtJs DataGridView控件实例"中,我们主要会探讨以下几个方面: 1. **ExtJs Grid组件**:ExtJs 的Grid组件是一个高度可定制的数据视图,能够显示大量的数据并提供分页、排序、过滤、编辑等功能。它通常与Store...