`
357029540
  • 浏览: 725891 次
  • 性别: 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>

效果图如下:

分享到:
评论

相关推荐

    ExtJS4中文教程2 开发笔记 chm

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

    前端开发Extjs入门-tree

    结合tree组件+grid组件+window组件实现json数据的自动加载,点击后自动勾选父子节点,前后台源代码

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

    EXT组件grid+tree+window+ssm框架+代码解释属性文档+开发源代码。实现tree结构树的自动加载与自动选中,以及点击子节点自动勾选父节点,点击父节点自动勾选所属下方所有子节点

    基于ExtJS3的后台管理系统模板

    3、通过实现角色管理、用户管理、部门管理三个基础的功能模块,演示了Viewport、Container、Panel、Grid、Window、Form、Tree等常用组件的用法,以及border、column、form、fit、accordion、hbox等常用布局方式;...

    extjs实例与学习资料

    因为前段时间有两个专案要用到extjs技术,所以自己学了一段...grid,tree,显示树信息的TreePanel、用于显示表格的GridPanel及EditorGridPanel,还有代表应用程序窗口的Ext.Window,与数据库交付,希望对初学者带来帮助

    ExtJSWeb应用程序开发指南(第2版)

    6.10.2 将数组中的对象加入到集合中 6.10.3 移除集合中的对象 6.10.4 克隆集合 6.10.5 匹配集合中关联对象 6.10.6 迭代集合中的对象调用指定的方法 6.10.7 获取集合中的对象 6.10.8 该类中的其他一些有用的...

    ExtAspNet_v2.3.2_dll

    -Grid中TemplateField生成到页面中控件具有唯一ID,例如Grid1_ct5_Label2,Grid1_ct6_Label2(feedback:geruger)。 +2009-09-27 v2.1.2 -为Tree控件增加GetExpandAllNodesReference和...

    ExtAspNet v2.2.1 (2009-4-1) 值得一看

    -Grid中TemplateField生成到页面中控件具有唯一ID,例如Grid1_ct5_Label2,Grid1_ct6_Label2(feedback:geruger)。 +2009-09-27 v2.1.2 -为Tree控件增加GetExpandAllNodesReference和...

    Ext Js权威指南(.zip.001

    10.2.8 grid的配置项、属性、方法和事件 / 535 10.3 grid的附加功能 / 537 10.3.1 概述 / 537 10.3.2 附加功能基类:ext.grid.featrue.featrue / 537 10.3.3 为行添加附加信息:ext.grid.featrue.rowbody / 538...

    Ext 开发指南 学习资料

    修改一个grid的ColumnModel和Store A.9.3. 动态为ds添加参数baseParams A.10. 有关tree的一些小问题 A.10.1. 如何选中树中的某个节点 A.10.2. 刷新树的所有节点 A.10.3. 如果取得json中自定义的属性 A.11. 如何使用...

    extjs基础dome

    基础功能的例子 不是官方给的那些 我就是从零开始学的时候用的这个代码 能够很快的掌握ext的基本原理 很值哦

    EXT2.0中文教程

    9.2. 带全选的checkbox树形CheckBoxTree 9.3. 带全选的checkbox的grid 9.4. fisheye 9.5. 可以设置时间的日期控件 9.6. JsonView实现用户卡片拖拽与右键菜单 9.7. 下拉列表选择每页显示多少数据 10. 撕裂吧!...

    EXT教程EXT用大量的实例演示Ext实例

    9.2. 带全选的checkbox树形CheckBoxTree 9.3. 带全选的checkbox的grid 9.4. fisheye 9.5. 可以设置时间的日期控件 9.6. JsonView实现用户卡片拖拽与右键菜单 9.7. 下拉列表选择每页显示多少数据 10. 撕裂吧!...

    本人学习EXT以来的宝贵财富,1年多的积累啊!!!

    这是个MyEclipse的web工程 不需要数据库 ...有Ext官方自带的,&lt;深入浅出ExtJS&gt;一书的所有源码,73个Ext官方论坛收集的用户扩展控件。几个自己写的例子。 有任何问题可以找我 QQ:370735745 email:zhouli253@163.com

    unigui0.83.5.820

    - 0000413: Maximized ExtWindow can't return to normal size - 0000697: UniPanel: Caption Alignment - 0000696: UniPanel: Caption - 0000699: UniPageControl: TabSheet is visible when TabVisible=False ...

Global site tag (gtag.js) - Google Analytics