`
357029540
  • 浏览: 732786 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

Extjs的Window中加入Tree和Grid

阅读更多
在Window中加入一些其他的控件是非常有用的,因为他展示出来的效果也是非常明显的,通过弹出框的值赋值给其他组件。所用的Extjs是3.2的。json包是fastjson-1.1.15.jar包。代码如下:

java类:

bo类:

TreeBo:


import java.util.List;




public class TreeBo {

private int id;//节点id

private String text;//节点显示名称

private String cls;//节点图标

private Boolean leaf;//是否叶子节点

private String qtip;//提示信息

private String href;

private List<TreeBo> children;//下级节点

private String military;//军区

private String fighting;//战斗力

private String uiProvider;

public int getId() {

return id;

}

public void setId(int id) {

this.id = id;

}

public String getText() {

return text;

}

public void setText(String text) {

this.text = text;

}

public String getCls() {

return cls;

}

public void setCls(String cls) {

this.cls = cls;

}

public Boolean getLeaf() {

return leaf;

}

public void setLeaf(Boolean leaf) {

this.leaf = leaf;

}

public List<TreeBo> getChildren() {

return children;

}

public void setChildren(List<TreeBo> children) {

this.children = children;

}

public String getQtip() {

return qtip;

}

public void setQtip(String qtip) {

this.qtip = qtip;

}

public String getHref() {

return href;

}

public void setHref(String href) {

this.href = href;

}

public String getMilitary() {

return military;

}

public void setMilitary(String military) {

this.military = military;

}

public String getFighting() {

return fighting;

}

public void setFighting(String fighting) {

this.fighting = fighting;

}

public String getUiProvider() {

return uiProvider;

}

public void setUiProvider(String uiProvider) {

this.uiProvider = uiProvider;

}

}

GridBo:



import java.util.List;




public class GridBo {

private int totalProperty;

private String id;

private String name;

private List root;

public int getTotalProperty() {

return totalProperty;

}

public void setTotalProperty(int totalProperty) {

this.totalProperty = totalProperty;

}

public String getId() {

return id;

}

public void setId(String id) {

this.id = id;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public List getRoot() {

return root;

}

public void setRoot(List root) {

this.root = root;

}

}

action类:




import java.io.IOException;

import java.io.PrintWriter;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

import java.util.Map;




import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;




import org.apache.struts2.ServletActionContext;




import com.alibaba.fastjson.JSONObject;

import com.test.bo.GridBo;

import com.test.bo.TreeBo;

public class FunctionListAction {

private List<TreeBo> treeList;

public void testTree(){

treeList = new ArrayList<TreeBo>();

TreeBo cdAllMilitary = new TreeBo();

cdAllMilitary.setText("成都军区");

cdAllMilitary.setCls("folder");

cdAllMilitary.setLeaf(false);

cdAllMilitary.setId(1);

cdAllMilitary.setQtip("司令");

treeList.add(cdAllMilitary);



List<TreeBo> cdMilitary = new ArrayList<TreeBo>();

cdAllMilitary.setChildren(cdMilitary);

TreeBo cq = new TreeBo();

cq.setText("重庆军区");

cq.setCls("folder");

cq.setLeaf(true);

cq.setId(11);

cq.setQtip("1军长");

cq.setHref("functionList.jsp");

cdMilitary.add(cq);

TreeBo km = new TreeBo();

km.setText("昆明军区");

km.setCls("folder");

km.setLeaf(true);

km.setId(12);

km.setQtip("2军长");

cdMilitary.add(km);



TreeBo bjAllMilitary = new TreeBo();

bjAllMilitary.setText("北京军区");

bjAllMilitary.setCls("folder");

bjAllMilitary.setLeaf(false);

bjAllMilitary.setId(2);

bjAllMilitary.setQtip("军委");

treeList.add(bjAllMilitary);



List<TreeBo> bjMilitary = new ArrayList<TreeBo>();

bjAllMilitary.setChildren(bjMilitary);

TreeBo bj = new TreeBo();

bj.setText("北京军区");

bj.setCls("folder");

bj.setLeaf(true);

bj.setId(21);

bj.setQtip("3军长");

bjMilitary.add(bj);



TreeBo tj = new TreeBo();

tj.setText("天津军区");

tj.setCls("folder");

tj.setLeaf(true);

tj.setId(22);

tj.setQtip("4军长");

bjMilitary.add(tj);





treeTest = JSONObject.toJSON(treeList).toString();

HttpServletResponse response = ServletActionContext.getResponse();

response.setCharacterEncoding("utf-8");

try {

PrintWriter writer = response.getWriter();

writer.print(JSONObject.toJSON(treeList).toString());

} catch (IOException e) {

e.printStackTrace();

}

}

public void grid(){

int start = Integer.parseInt(ServletActionContext.getRequest().getParameter("start"));

int limit = Integer.parseInt(ServletActionContext.getRequest().getParameter("limit"));

GridBo grid = new GridBo();

grid.setTotalProperty(100);

List list = new ArrayList();

String root = "";

for(int i = start;i < start+limit;i++){

Map obj=new HashMap();

obj.put("id", i);

obj.put("name", "name"+i);

list.add(obj);

}

grid.setRoot(list);

HttpServletResponse response = ServletActionContext.getResponse();

response.setCharacterEncoding("utf-8");

try {

PrintWriter writer = response.getWriter();

writer.print(JSONObject.toJSON(grid).toString());

} catch (IOException e) {

e.printStackTrace();

}

}

}


struncts.xml配置:



<package name="struts2" namespace="/" extends="struts-default">

<action name="function_*" class="com.test.action.FunctionListAction" method="{1}"></action>

</package>

window1.js:




Ext.onReady(function(){

//tree

var tree3 = new Ext.tree.TreePanel({

    autoScroll:true,

    animate:true,

    enableDD:true,

    autoHeight:true,

    autoWidth:true,

    containerScroll:true,

    loader:new Ext.tree.TreeLoader({dataUrl:'function_testTree.action'})

});

var root3 = new Ext.tree.AsyncTreeNode({

    text:'中国军区',

    draggable:false,

    id:'testTree'

});

tree3.setRootNode(root3);

//grid

var cm = new Ext.grid.ColumnModel([

   {header:'编号',dataIndex:'id',width:50,sortable:true},

   {header:'名称',dataIndex:'name',width:100,sortable:true}

]);

var store = new Ext.data.Store({

    proxy:new Ext.data.HttpProxy({url:'function_grid.action'}),

    reader:new Ext.data.JsonReader({

        totalProperty:'totalProperty',

        root:'root',

        fields:[

          {name:'id'},

          {name:'name'}

        ]})

});

var grid = new Ext.grid.GridPanel({

    store:store,

    cm:cm,

    width:500,

    autoHeight:true,

    stripeRows:true,

    loadMask:true,

    viewConfig:{

    forceFit:true,

    enableRowBody:true,

    columnsText:'显示的列',

    sortAscText:'升序',

    sortDescText:'降序',

    scrollOffset:1

    },

    bbar:new Ext.PagingToolbar({

       pageSize:10,

       store:store,

       displayInfo:true,

       displayMsg:'显示第{0}条到{1}条记录,一共{2}条',

       emptyMsg:'没有记录'

    })

});

store.load({params:{start:0,limit:10}});



    var tabs = new Ext.TabPanel({

       region:'center',

       defaults:{autoScroll:true},

       activeTab:0,

       items:[

          {

            title:'默认',items:[grid]

          },

          {

            title:'标签',

            html:'内容'

          },

          {

            title:'可关闭',

            html:'内容',

            closable:true

          }

       ]

    });

    var nav = new Ext.Panel({

        title:'导航',

        region:'west',

        split:true,

        width:200,

        items:[tree3],

        collapsible:true

     });

     var win = new Ext.Window({

         title:'复杂布局',

         colseable:true,

         width:720,

         height:330,

         border:false,

         layout:'border',

         items:[nav,tabs]

     }); 

     win.show();

});

window1.jsp文件:



<html>

  <head>

     <script type="text/javascript"></script>

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

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

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

     <script type="text/javascript" src="./js/window1.js"></script>

  </head>

 

  <body>

     <div id="window-win"></div>

  </body>

</html>

效果图如下:

分享到:
评论

相关推荐

    前端开发Extjs入门-tree

    在实际应用中,这可能涉及到用户的角色分配,以及角色对系统资源(如树节点或Grid中的数据)的操作权限控制。EXTJS提供了丰富的权限控制机制,可以配合后台实现精细的访问控制。 通过EXT组件grid+tree+window.docx...

    EXT组件初学者教程 grid+tree+window+描述文档

    在本教程中,我们将深入探讨EXTJS中的几个关键组件:Grid、Tree和Window,并结合SSM(Spring、Struts、MyBatis)后端框架进行实践。以下是关于这些组件及其相关功能的详细说明: 1. **EXTJS Grid组件**: - Grid是...

    extjs学习案例, 例子有 panel ,widow,tree,grid,form, store……

    Grid中的数据通常通过Store管理,用户可以通过列配置来定制显示样式和行为。 Store是ExtJS中存储数据的主要机制,它可以是数组、JSON对象或者远程服务器的数据。Store负责加载、更新和管理数据,与Grid、Tree等组件...

    extJs3升级extjs4方案

    在 ExtJS4 中,API 也发生了很大的变化,包括 tree、tab panel、grid、window、form、chart、data stores、border layout 等等。这些变化使得大型应用程序迁移变得非常困难。 在 ExtJS3 中,我们可以使用 Ext....

    ExtJs 实例+ExtJs中文教程(学习extjs必备)

    通过学习这些实例,你可以更好地理解如何在实际项目中应用ExtJs,例如如何创建网格(Grid)、表单(Form)、树形视图(Tree)、面板(Panel)等。实例通常包括完整的HTML、CSS和JavaScript代码,以及详细的解释,...

    ExtJS4中文教程2 开发笔记 chm

    Extjs4中up()和down()的用法 ExtJS4学习笔记(一)---window的创建 ExtJS4学习笔记(七)---带搜索的Grid(SearchGrid) ExtJS4学习笔记(三)---VBox的使用 ExtJS4学习笔记(九)---ExtJS4 EditGrid(可编辑的Grid) ExtJS4...

    EXTJS3.0中文API (离线)

    1. **组件系统**:EXTJS的核心是其组件模型,包括窗口(Window)、面板(Panel)、表单(Form)、表格(Grid)、树(Tree)等。这些组件都是可重用的,可以组合起来构建复杂的用户界面。 2. **数据绑定**:EXTJS...

    中文的Extjs的api手册

    1. **组件系统**:ExtJS的核心在于其组件模型,包括窗口(Window)、面板(Panel)、表格(Grid)、表单(Form)等。每个组件都是可复用的,可以通过组合这些组件构建复杂的UI结构。 2. **数据绑定**:ExtJS提供了...

    Extjs3.0中文文档大全

    2. **组件库**:ExtJS 3.0包含了大量的UI组件,如按钮(Button)、表单(Form)、网格(Grid)、树形视图(Tree)和菜单(Menu)。每个组件都有详细的API参考,包括属性、方法、事件和配置项。 3. **数据管理**:...

    基于ExtJS5的后台管理系统案例 - 源码

    在ExtJS5中,可以使用Grid Panel配合Editor Grid插件实现数据的编辑,使用Window或Modal Form进行新建和修改操作,而使用Store与Proxy连接后台服务进行数据的删除。 4. **表格组件(Grid)** Grid是ExtJS5中用于...

    ExtJs 的中文API文档版本3.3

    ExtJs 3.3包含了一系列丰富的组件,如面板(Panel)、表格(Grid)、窗口(Window)、表单(Form)等,这些组件构成了其强大的用户界面构建基础。每个组件都有自己的属性、方法和事件,可以灵活组合和定制,以满足...

    Extjs1.1中文教程

    1. **Grid(表格)**: ExtJS 1.1中的Grid组件允许开发者创建动态、可排序的表格,支持分页、编辑和过滤功能。 2. **Form(表单)**: 提供了各种表单元素如文本框、选择框、日期选择器等,并支持表单验证和数据绑定。...

    ExtJs3.0中文帮助文档(chm格式)

    1. **组件系统**:ExtJS 3.0的核心在于其组件化设计,包括窗口(Window)、面板(Panel)、表单(Form)、表格(Grid)、树(Tree)等,这些组件可以方便地组合和自定义,以满足各种界面需求。 2. **布局管理**:...

    ExtJs3.0中文API

    - **Window**: 可弹出的窗口,具有可定制的标题、大小、位置和关闭按钮。 - **Panel**: 基本的容器组件,可以包含其他组件,支持各种布局。 - **Form**: 表单组件,包括文本框、复选框、下拉列表等,支持验证和...

    整理3种类型extjs

    EXTJS的窗口和面板(Window和Panel)也是重要的组成部分。例如,"相关事务"窗口(XgWorkWindow)和"关闭相关流程"(WorkFlow2)都是通过new关键字实例化Suncy类来创建的。这些窗口通常包含自定义的JS配置文件,如...

    extjs xtype

    EXTJS 是一个流行的JavaScript框架,用于构建富...在EXTJS开发中,理解和熟练运用`xtype`、`Ext.QuickTips.init()`以及`vtype`能够帮助我们更高效地构建用户界面,提供更好的用户体验,同时确保数据的准确性和安全性。

    EXTJS教材,教程

    EXTJS的学习和实践,不仅包括Grid Panel的使用,还包括其他组件(如Window、Form、Tree等)的掌握,以及布局管理、事件处理、数据绑定等核心概念的理解。通过深入学习EXTJS,开发者可以创建出功能丰富、交互性强的...

    Extjs treeGrid 本地数据 例子

    在ExtJS中,TreeGrid是通过`Ext.tree.Panel`类实现的,它继承自`Ext.grid.Panel`,增加了树形结构的功能。 在本地数据的例子中,我们通常会用到`Ext.data.TreeStore`来存储和管理数据。TreeStore是ExtJS中的一个...

    extjs2----关于extjs 的使用,操作

    4. **数据绑定**:阐述ExtJS的数据模型(Store)和数据显示组件(Grid、Tree)之间的数据绑定机制,包括XML、JSON数据源的加载。 5. **表单元素**:深入探讨表单(Form)的创建,包括各种表单字段(TextField、...

    ExtJs 2.2 简明教程 02 基础知识

    - **组件化**:组合使用ExtJs的各种组件(如Grid、Form、Tree等)来构建复杂的UI。 - **数据绑定**:使用Store与View的双向绑定,实现数据和界面的实时同步。 - **事件驱动**:通过监听和处理事件,实现组件间的...

Global site tag (gtag.js) - Google Analytics