`

Extjs3.4 带复选框的树结构(Tree+checkbox)案例

阅读更多
框架为struts2

1. jsp页面:


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%@taglib prefix="s" uri="/struts-tags"%>
<%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>  
<html xmlns="http://www.w3.org/1999/xhtml" >
  <head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>种类指派</title>
<!-- ExtJS library -->
<link rel="stylesheet" type="text/css" href="css/ext/ext-all.css" />
<script type="text/javascript" src="js/ext/ext-base.js"></script>
<script type="text/javascript" src="js/ext/ext-all.js"></script>
<script type="text/javascript" src="js/ext/edittree/categorychecktree.js"></script>
<script type="text/javascript" src="js/ext/edittree/TreeCheckNodeUI.js"></script>
<script type="text/javascript" src="js/ext/examples.js"></script>
<link href="css/ext/ext-patch.css"  type="text/css" rel="stylesheet"/>

<!-- Common Styles for the examples -->
<link rel="stylesheet" type="text/css" href="css/ext/examples.css" />


<style type="text/css">
    .complete .x-tree-node-anchor span {
        text-decoration: line-through;
        color: #777;
    }
  .x-tree-node .root{
  background-image: url(css/images/default/tree/category.png)
  }  
</style>
</head>
<body style="padding:0 0 0 ;">
<!-- EXAMPLES -->
<div id="tree-div" ></div>
<input type="hidden" id="name" name="name" value='<s:property value="product.name"/>'/>
<input type="hidden" id="productid" name="productid" value='<s:property value="productid"/>'/>
</body>
</html>



2.categorychecktree.js

/*!
 * Ext JS Library 3.4.0
 * Copyright(c) 2006-2011 Sencha Inc.
 * licensing@sencha.com
 * http://www.sencha.com/license
 */

Ext.onReady(function(){
    var tree = new Ext.tree.TreePanel({
        renderTo:'tree-div',
     //   title: document.getElementById('name').value+'——>指派种类',
        align:'center',
        height: 300,
        width: 400,
        useArrows:true,
        autoScroll:true,
        animate:true,
       // enableDD:true,拖拽
        containerScroll: true,
        expanded:true,
        rootVisible: false,
        checkModel:'single',
        onlyLeafCheckable:true,
        frame: true,
        root: {
            nodeType: 'async',
            text:'选择类别' ,
            iconCls:''       
        },//loader 引用插件TreeCheckNodeUI,实现单选功能
      loader: new Ext.tree.TreeLoader({
        dataUrl: 'categorycheckjson.action?productid='+document.getElementById('productid').value,
      baseAttrs: { uiProvider: Ext.ux.TreeCheckNodeUI } //添加 uiProvider 属性
      }),
        
        buttons: [{
            text: '指派种类',
            handler: function(){
                var categoryId = '', selNodes = tree.getChecked();
                var productid=document.getElementById('productid').value;
                if(selNodes.length==0){
                Ext.Msg.alert('提示','请选择指派种类');
                }
                Ext.each(selNodes, function(node){
                    if(categoryId.length > 0){
                        categoryId += ', ';
                    }
                   // msg += node.text;
                    categoryId += node.attributes['categoryId'];
                 
                 Ext.MessageBox.confirm("确认","确定指派种类吗?",function(e){
                if (e == "yes") {
    
              //提交到服务器操作
                 Ext.Ajax.request({ 
                            url: 'asignCategory.action',
                            params: {categoryId:categoryId,productid:productid},
                            method: 'POST',
                            dataType:'json',          
                            success:function(form,action){
                            var obj = Ext.util.JSON.decode(form.responseText);   
                            if(obj.success==true)   
                           {    
                               Ext.Msg.alert('指派成功',obj.msg);   
                               var win = parent.Ext.getCmp('win');
                               if (win) {win.close();}  
                             }   
                          else  
                            {   
                           //Ext.Msg.alert('提示',obj.errors);   
                              Ext.Msg.alert('指派错误',obj.msg);   
                              }     
                            },
                            //提交失败的回调函数
                            failure:function(){                           
                                 Ext.Msg.alert('错误','服务器出现错误请稍后再试!');
                            }
                          });
           
                } else if (e == "no") {
                 // alert("no");
                } else if (e == "cancel") {
                  //alert("cancel");       
                }});
                   
                });
            }
        },{
            text: '关闭',
            handler: function(){
              var win = parent.Ext.getCmp('win');
          //  alert(win2);
            if (win) {win.close();}  
          //  window.parent.location.href='roleGrid.action'
            }
        }]
    });
    tree.getRootNode().expand(true);
     tree.root.getUI().getIconEl().src ='';
//'js/ext/icons/fam/book.png';   
    
    /////////////////////////
    
});



其中 json格式:

stcCallback1001({totalCount:"8",results:[{productid:"13",name:"考试",companyName:"教育",create_time:"2012-08-06 16:14:32"},{productid:"12",name:"ggg",companyName:"4546",create_time:"2012-08-06 16:13:29"},{productid:"11",name:"3434",companyName:"3444",create_time:"2012-08-06 16:12:44"},{productid:"10",name:"333",companyName:"fff",create_time:"2012-08-06 16:12:02"},{productid:"9",name:"考试",companyName:"教育",create_time:"2012-08-06 16:10:53"},{productid:"8",name:"999",companyName:"教育",create_time:"2012-08-06 16:09:36"},{productid:"7",name:"考试",companyName:"教育",create_time:"2012-08-06 16:08:20"},{productid:"6",name:"学",companyName:"教育",create_time:"2012-08-06 15:50:26"}]});
  • 大小: 17.7 KB
0
0
分享到:
评论

相关推荐

    带复选框的 ExtJs tree

    综上所述,“带复选框的ExtJS tree”这一主题深入探讨了如何在ExtJS框架中实现具有复选框功能的树形结构。通过对标题、描述、标签和部分内容的分析,我们可以看到这是一个关于ExtJS TreePanel高级用法的案例,涉及到...

    基于EXTjs 的 动态复选框树

    基于EXTjs 的 动态复选框树 json数据交互

    Extjs3.4+Ext-core.pdf+轻松搞定Extjs.pdf

    本资源包包含了与ExtJS 3.4相关的学习资料,包括`Ext-core.pdf`、`轻松搞定Extjs.pdf`以及`Extjs学习笔记.docx`,旨在帮助初学者或有经验的开发者更好地理解和掌握ExtJS 3.4。 `Ext-core.pdf` 是关于Ext Core的文档...

    extjs 3.4 开发前准备

    【EXTJS 3.4 开发前准备】 EXTJS 是一款强大的JavaScript库,主要用于构建桌面级的Web应用程序,提供丰富的用户界面组件和交互效果。3.4版本是EXTJS的一个重要里程碑,它提供了稳定的基础和丰富的组件库。本文将...

    extjs3.X 带复选框的树

    "带复选框的树"是ExtJS中的TreePanel组件的一个扩展,允许用户通过复选框选择树结构中的节点。这种功能在数据层级结构的管理和筛选中非常有用,例如在组织架构、文件系统或者权限设置中。 复选框树的核心在于`...

    extjs4.1下拉复选框完整DEMO

    在这个"extjs4.1下拉复选框完整DEMO"中,我们主要关注的是如何使用ExtJS实现一个具有动态加载功能的下拉复选框组件。这个DEMO包含以下几个关键组成部分: 1. **ext-all-debug.js**:这是ExtJS的核心库文件,包含了...

    Extjs4.2带复选框下拉树组件

    网上搜索了许久未找到...Extjs4.2 带复选框的下拉树,解决了向下勾选子节点、向上勾选父节点,正选反选获取值等问题,勾选的节点显示displayfield值直接显示在下拉文本框中。需要引用ext-all.js和ext-all-neptune.css

    spket1.6和extjs3.4

    描述中的"spket1.6.18和extjs3.4"稍有不同,它提到了Spket的更具体版本1.6.18,这意味着可能在下载或讨论中涉及到的是Spket的一个更新版本,但仍然与ExtJS 3.4配合使用。这通常意味着用户可能在寻找或使用这两个工具...

    extjs带复选框的树包括全选 反选 子选父以及 父选子

    - `extjs复选框树.js`:这是实现上述功能的JavaScript代码,包括工具类和针对树节点的操作方法。 - `样式文件.css`:可能包含了一些自定义的样式,用于美化复选框和树的显示效果。 - `示例HTML文件.html`:演示如何...

    ExtJS 3.4 源码包

    ExtJS 是一个流行的JavaScript库,专门用于构建富客户端应用程序。版本3.4是该库的一个稳定版本,提供了丰富的UI组件和强大的数据管理功能。在这个源码包中,开发者可以深入理解ExtJS的工作原理,以便更好地定制和...

    解决Extjs当中复选框全选后,取消选中某一项,全选框仍是选中状态的问题

    在EXTJS这个强大的JavaScript框架中,用户界面的交互设计是其一大亮点,其中包括各种各样的控件,如复选框(checkboxes)和全选功能。然而,在实际应用中,我们可能会遇到一个问题:当实现全选功能后,如果尝试取消...

    ExtJs4 Checkbox tree

    ExtJs4 Checkbox Tree是基于ExtJs 4框架实现的一种特殊树形组件,它在传统的树形结构基础上增加了复选框功能。这种组件常用于需要用户多选树形数据的场景,比如权限设置、目录选择等。下面将详细介绍ExtJs4 Checkbox...

    ExtJs3.4 api

    extjs3.4api,很实用,方便大家学习extjs,欢迎大家下载 extjs3.4中文api,很实用,方便大家学习extjs,欢迎大家下载

    extjsapi/extjs3.4

    extjsapi,extjs文档,api手岫

    ExtJS 3.4关于TreePanel的一些实例

    学习TreePanel时根据网上的资料自己实现的实例,结构如下: 1. 创建一棵树 2. 使用TreeLoader加载数据生成树 3. 读取本地Json数据生成树 4. 使用Servlet提供数据 ...16. 对树增加复选框 代码中有详尽的注释。

    extjs 3.4 full package

    extjs 3.4 full package extjs 3.4 ajax 实例

    EXTJS动态树支持checkbox 全选

    标题中的“EXTJS动态树支持checkbox全选”指的是EXTJS中树组件的一个特性,即在树形结构中添加复选框(checkbox)功能,并支持全选和全取消选中操作。这样的功能对于需要用户进行多项选择的场景非常有用,比如文件...

    extjs_3.4官方离线API

    extjs_3.4官方离线API,方便查询所有组件属性

    extjs4带全选复选框的下列表(有bug)

    1、解压,进入extjs4.2.1\examples\form,浏览器打开 hbox-form.html 文件,当我勾选中任意一个多选下拉框,然后再勾选‘ALL’时,‘ALL’却是不被选中的状态,且...extjs4.2.1\examples\form\MultipleComboBox.js

Global site tag (gtag.js) - Google Analytics