zoukankan      html  css  js  c++  java
  • Ext.tree.Panel实现单选,多选

    Extjs

      1 var productCategoryTreeLookUpFn = function(callback) {
      2     var productCategoryLookUpWindow;
      3     var productCategoryTreeStore;
      4     var productCategoryTreeMenu;
      5     
      6     if (!productCategoryLookUpWindow) {
      7         
      8         // 加载菜单树
      9         productCategoryTreeStore = Ext.create('Ext.data.TreeStore', {
     10             fields : ['id', 'text'],
     11             proxy: {
     12                 type: 'ajax',
     13                 url: COMMON.APP_URL + '/view/master/selectProductCategoryForComboBoxTree.action'
     14             },
     15             root: {
     16                 id: '0',
     17                 text : "产品分类",
     18                 expanded: true
     19             }
     20         });
     21         
     22         var beforNode = null;
     23         productCategoryTreeMenu = Ext.create('Ext.tree.Panel', {
     24             store: productCategoryTreeStore,
     25             rootVisible : false,
     26             height : 300,
     27             animate : true, // 开启动画效果
     28             enableDD : false, // 不允许子节点拖动
     29             border : false, // 没有边框
     30             singleClickExpand : true,
     31             listeners : {
     32                 checkchange : function(node, checked, eOpts) {
     33 //                    setChildChecked(node, checked);
     34                     if(node.isNode){
     35                         if(beforNode != null){//把上一次选中节点取消选择,实现单选
     36                             beforNode.set("checked",false);
     37                         }
     38                         beforNode = node;            
     39 //                        node.collapse();            
     40 //                        node.cascadeBy(function(node) {            
     41 //                            node.set("checked",checked);
     42 //                        });
     43                     }
     44                 }
     45             }
     46         });
     47         
     48         function setChildChecked(node, checked){
     49             node.set({checked:checked});
     50             if(node.hasChildNodes()){
     51                 node.eachChild(function(child) {
     52                     setChildChecked(child, checked);
     53                 });
     54             }
     55         }
     56         
     57         function setParentChecked(node, checked){
     58             node.set({checked:checked});
     59             var parentNode = node.parentNode;
     60             if(parentNode != null){
     61                 var flag = false;
     62                 parentNode.eachChild(function(child) {
     63                     if(child.data.checked == true){
     64                         flag = true;
     65                     }
     66                 });
     67                 if (checked == false) {
     68                     if(!flag){
     69                         setParentChecked(parentNode, checked);
     70                     }
     71                 } else {
     72                     if(flag){
     73                         setParentChecked(parentNode, checked);
     74                     }
     75                 }
     76              }
     77         }
     78 
     79         productCategoryLookUpWindow = Ext.create('Ext.window.Window', {
     80             title : '产品分类信息',
     81             autoShow: true,
     82             width : 400,
     83             constrain : true,
     84             constrainHeader : true,
     85             maximizable : false,
     86             minimizable : false,
     87             resizable : false,
     88             closable : false,
     89             buttonAlign : 'right',
     90             animateTarget: Ext.getBody(),
     91             modal : true,
     92             plain : true,
     93             border : true,
     94             closeAction : 'destroy',
     95             items : [productCategoryTreeMenu],
     96             buttons : [{
     97                 text : '确定',
     98                 handler : function() {
     99                     var checkNodeArray = productCategoryTreeMenu.getChecked();
    100                     var checkNodeString = '';
    101                     var checkNodeTextString = '';
    102                     for (var index = 0; index < checkNodeArray.length; index++) {
    103                         checkNodeString += checkNodeArray[0].data.id;
    104                         checkNodeTextString += checkNodeArray[0].data.qtip;
    105                     }
    106                     if (Ext.isFunction(callback)) {
    107                         callback(checkNodeString, checkNodeTextString);
    108                     }
    109                     productCategoryLookUpWindow.destroy();
    110                 }
    111             }, {
    112                 text : '关闭',
    113                 handler : function() {
    114                     productCategoryLookUpWindow.destroy();
    115                 }
    116             }]
    117         });
    118 
    119     }
    120 
    121     productCategoryLookUpWindow.show();
    122 
    123 };
    View Code

    Java

    for (ProductCategoryVO dbVo : productCategoryVOList) {
                    JSONObject obj = new JSONObject();
                    obj.put("id", dbVo.getCategoryIdFull());
                    obj.put("text", dbVo.getCategoryName());
                    obj.put("qtip", dbVo.getCategoryNameFull());
                    obj.put("leaf", !new Boolean(dbVo.getIsExistChildNode()));
                    obj.put("checked", new Boolean(false));
    //                obj.put("isExistChildNode", new Boolean(dbVo.getIsExistChildNode()));
    //                obj.put("categoryId", dbVo.getCategoryId());
    //                obj.put("categoryName", dbVo.getCategoryName());
    //                obj.put("categoryIdFull", dbVo.getCategoryIdFull());
    //                obj.put("categoryNameFull", dbVo.getCategoryNameFull());
    //                obj.put("parentIdFull", dbVo.getParentIdFull());
    //                obj.put("parentNameFull", dbVo.getParentNameFull());
    //                obj.put("recordId", dbVo.getId());
    //                obj.put("nodeLevel", dbVo.getNodeLevel());
                    jsonArray.add(obj);
                }
    View Code
  • 相关阅读:
    泛型方法
    Javascript操作Cookie[3]
    委托的发展
    selectorUI元素状态伪类
    服务器端操作Cookie[2]
    泛型
    Action<T>泛型委托
    Javascript创建对象的流程
    Cookie[1]
    后缀名是exe的文件 的打开方式
  • 原文地址:https://www.cnblogs.com/BobXie85/p/8269129.html
Copyright © 2011-2022 走看看