jquery easyui treegrid使用小结

在实际应用中可能会碰到不同的需求,比如会根据每行不同的参数或属性设置来设置同列不同的editor类型,这时原有的例子就显的有点太过简单,不能实现我们的需求,现在应用我在项目中的操作为例,显示下实现同列不同操作的情况:(在这,我把例子的情况完全整合到了js里面配置实现,如有习惯于js实现方式的也可参考)

html:

<table id="comTypeAndPropertyTree"></table>//个人觉得这样更显的页面清晰,所有的配置都放到js里实现

js:

var types = [
      {typeId:0,typeName:‘Normal‘},
      {typeId:1,typeName:‘URL‘},
      {typeId:2,typeName:‘Symbol‘}
  ];

$(function(){
     var lastIndex;
   $(‘#comTypeAndPropertyTree‘).treegrid({
    title:‘产品库配置‘,
    height:550,
    rownumbers: true,
    animate:true,
    url:‘getComTypeAndPropertyTreeRoot.action‘,
    idField:‘id‘,//id=productId_propId_largetypeId_midlletypeId_comtypeId;
    treeField:‘name‘,
    frozenColumns:[[
                 {title:‘名称‘,field:‘name‘,width:300,
                  formatter:function(value){
                   return ‘<span style="color:red">‘+value+‘</span>‘;
                  }
                 }
    ]],
    columns:[[
        {title:‘library‘,field:‘library‘,width:100,editor:{type:‘checkbox‘,options:{on:‘1‘,off:‘0‘}},
         formatter:function(value,row){
         if(!row.leaf){
          if(value==1){
            return ‘<img src="images/checkbox_checked.jpg"/>‘;
           }else{
            return ‘<img src="images/checkbox_unchecked.jpg"/>‘;
           }
         }else{
          return ‘‘;
         }
         }},
     {title:‘显示名称‘,field:‘displayName‘,width:100,editor:‘text‘},
     {title:‘type‘,field:‘type‘,width:100,
      editor:{type:‘combobox‘,options:{valueField:‘typeId‘,textField:‘typeName‘,data:types}},
         formatter:function(value,row){
          if(row.leaf){
           for(var i=0; i<types.length; i++){
         if (types[i].typeId == value) return types[i].typeName;
        }
        return types[0].typeName;
       }else{
        return ‘‘;
       }
                  }
        },
     {title:‘Expose‘,field:‘expose‘,width:100,editor:{type:‘checkbox‘,options:{on:‘1‘,off:‘0‘}},
         formatter:function(value,row){
         if(row.leaf){
           if(value==1){
            return ‘<img src="images/checkbox_checked.jpg"/>‘;
           }else{
            return ‘<img src="images/checkbox_unchecked.jpg"/>‘;
           }
          }else{
           return ‘‘;
          }
         }},
     {title:‘Annotate‘,field:‘annotate‘,width:100,editor:{type:‘checkbox‘,options:{on:‘1‘,off:‘0‘}},
         formatter:function(value,row){
          if(row.leaf){
           if(value==1){
            return ‘<img src="images/checkbox_checked.jpg"/>‘;
           }else{
            return ‘<img src="images/checkbox_unchecked.jpg"/>‘;
           }
          }else{
           return ‘‘;
          }
         }
        },
     {title:‘Load‘,field:‘load‘,width:100,editor:{type:‘checkbox‘,options:{on:‘1‘,off:‘0‘}},
         formatter:function(value,row){
          if(row.leaf){
           if(value==1){
            return ‘<img src="images/checkbox_checked.jpg"/>‘;
           }else{
            return ‘<img src="images/checkbox_unchecked.jpg"/>‘;
           }
          }else{
           return ‘‘;
          }
         }
        },
     {title:‘Name Available‘,field:‘nameAvailable‘,width:100,editor:{type:‘checkbox‘,options:{on:‘1‘,off:‘0‘}},
         formatter:function(value,row){
          if(row.leaf){
           if(value==1){
            return ‘<img src="images/checkbox_checked.jpg"/>‘;
           }else{
            return ‘<img src="images/checkbox_unchecked.jpg"/>‘;
           }
          }else{
           return ‘‘;
          }
         }
        },
     {title:‘Value Available‘,field:‘valueAvailable‘,width:100,editor:{type:‘checkbox‘,options:{on:‘1‘,off:‘0‘}},
         formatter:function(value,row){
          if(row.leaf){
           if(value==1){
            return ‘<img src="images/checkbox_checked.jpg"/>‘;
           }else{
            return ‘<img src="images/checkbox_unchecked.jpg"/>‘;
           }
          }else{
           return ‘‘;
          }
         }
        },
     {title:‘Export As OAT‘,field:‘exportAsOAT‘,width:100,editor:{type:‘checkbox‘,options:{on:‘1‘,off:‘0‘}},
         formatter:function(value,row){
          if(row.leaf){
           if(value==1){
            return ‘<img src="images/checkbox_checked.jpg"/>‘;
           }else{
            return ‘<img src="images/checkbox_unchecked.jpg"/>‘;
           }
          }else{
           return ‘‘;
          }
         }
        },
     {title:‘Required‘,field:‘required‘,width:100,editor:{type:‘checkbox‘,options:{on:‘1‘,off:‘0‘}},
         formatter:function(value,row){
          if(row.leaf){
           if(value==1){
            return ‘<img src="images/checkbox_checked.jpg"/>‘;
           }else{
            return ‘<img src="images/checkbox_unchecked.jpg"/>‘;
           }
          }else{
           return ‘‘;
          }
         }
        },
     {title:‘Units‘,field:‘units‘,width:100,editor:‘text‘,
      formatter:function(value,row){
       if(row.leaf){
        return value;
       }else{
        return ‘‘;
       }
      }},
     {title:‘VM‘,field:‘vm‘,width:100,editor:‘text‘,
      formatter:function(value,row){
       if(row.leaf){
        return value;
       }else{
        return ‘‘;
       }
      }}
    ]]
    ,onClickRow:function(row){//运用单击事件实现一行的编辑结束,在该事件触发前会先执行onAfterEdit事件
     var rowIndex = row.id;
     if (lastIndex != rowIndex){
      $(‘#comTypeAndPropertyTree‘).treegrid(‘endEdit‘, lastIndex);
     }
    }
    ,onDblClickRow:function(row){//运用双击事件实现对一行的编辑
     var rowIndex = row.id;
     if (lastIndex != rowIndex){
      $(‘#comTypeAndPropertyTree‘).treegrid(‘endEdit‘, lastIndex);
      $(‘#comTypeAndPropertyTree‘).treegrid(‘beginEdit‘, rowIndex);
      lastIndex = rowIndex;
     }
    }
    ,onBeforeEdit:function(row){
           beforEditRow(row);//这里是功能实现的主要步骤和代码
    }
    ,onAfterEdit:function(row,changes){
     var rowId = row.id;
     $.ajax({
          url:"saveProductConfig.action" ,
          data: row,
          success: function(text){
         $.messager.alert(‘提示信息‘,text,‘info‘);
          }
        });
    }
   });
  });
  function beforEditRow(row){//这个是核心的,很有用的,如有同样需求的话可以借鉴实现
      var libraryCoclum = $(‘#comTypeAndPropertyTree‘).treegrid(‘getColumnOption‘,‘library‘);
         var exposeCoclum = $(‘#comTypeAndPropertyTree‘).treegrid(‘getColumnOption‘,‘expose‘);
         var annotateCoclum = $(‘#comTypeAndPropertyTree‘).treegrid(‘getColumnOption‘,‘annotate‘);
         var loadCoclum = $(‘#comTypeAndPropertyTree‘).treegrid(‘getColumnOption‘,‘load‘);
         var nameAvailableCoclum = $(‘#comTypeAndPropertyTree‘).treegrid(‘getColumnOption‘,‘nameAvailable‘);
         var valueAvailableCoclum = $(‘#comTypeAndPropertyTree‘).treegrid(‘getColumnOption‘,‘valueAvailable‘);
         var exportAsOATCoclum = $(‘#comTypeAndPropertyTree‘).treegrid(‘getColumnOption‘,‘exportAsOAT‘);
         var requiredCoclum = $(‘#comTypeAndPropertyTree‘).treegrid(‘getColumnOption‘,‘required‘);

         var unitsCoclum = $(‘#comTypeAndPropertyTree‘).treegrid(‘getColumnOption‘,‘units‘);
         var vmCoclum = $(‘#comTypeAndPropertyTree‘).treegrid(‘getColumnOption‘,‘vm‘);

          var typeCoclum = $(‘#comTypeAndPropertyTree‘).treegrid(‘getColumnOption‘,‘type‘);

         var checkboxOptionsObj = new Object();
    checkboxOptionsObj.on=‘1‘;
    checkboxOptionsObj.off=‘0‘;
      var checkboxEditorObj = new Object();
    checkboxEditorObj.type=‘checkbox‘;
    checkboxEditorObj.options=checkboxOptionsObj;

   var comboboxOptionsObj = new Object();
    comboboxOptionsObj.valueField=‘typeId‘;
    comboboxOptionsObj.textField=‘typeName‘;
    comboboxOptionsObj.data=types;
   var comboboxEditorObj = new Object();
    comboboxEditorObj.type=‘combobox‘;
    comboboxEditorObj.options=comboboxOptionsObj;
   if(row.leaf){
    libraryCoclum.editor=null;
    exposeCoclum.editor=checkboxEditorObj;
    annotateCoclum.editor=checkboxEditorObj;
    loadCoclum.editor=checkboxEditorObj;
    nameAvailableCoclum.editor=checkboxEditorObj;
    valueAvailableCoclum.editor=checkboxEditorObj;
    exportAsOATCoclum.editor=checkboxEditorObj;
    requiredCoclum.editor=checkboxEditorObj;

    unitsCoclum.editor=‘text‘;
    vmCoclum.editor=‘text‘;

    typeCoclum.editor=comboboxEditorObj;
   }else{
    libraryCoclum.editor=checkboxEditorObj;
    exposeCoclum.editor=null;
    annotateCoclum.editor=null;
    loadCoclum.editor=null;
    nameAvailableCoclum.editor=null;
    valueAvailableCoclum.editor=null;
    exportAsOATCoclum.editor=null;
    requiredCoclum.editor=null;

    unitsCoclum.editor=null;
    vmCoclum.editor=null;

    typeCoclum.editor=null;
   }
    }

实现效果图:实现流程:onDblClickRow --( onBeforeEdit -- onAfterEdit) -- onClickRow,操作上只需要双击和单击两个事件来完成操作,而另两个事件是在中间自动实现完成。
时间: 2024-12-31 03:10:52

jquery easyui treegrid使用小结的相关文章

jquery easyui treegrid使用小结 二

在实际应用中可能会碰到不同的需求,比如会根据每行不同的参数或属性设置来设置同列不同的editor类型,这时原有的例子就显的有点太过简单,不能实现我们的需求,现在应用我在项目中的操作为例,显示下实现同列不同操作的情况:(在这,我把例子的情况完全整合到了js里面配置实现,如有习惯于js实现方式的也可参考) html: <table id="comTypeAndPropertyTree"></table>//个人觉得这样更显的页面清晰,所有的配置都放到js里实现 js

Jquery easyui treegrid实现树形表格的行拖拽

前几天修改了系统的一个功能——实现树形列列表的行拖拽,以达到排序的目的.现在基本上功能实现,现做一个简单的总结. 1.拿到这个直接网上搜,有好多,但是看了后都觉得不是太复杂就是些不是特别想看的例子,自己太懒(对自己不是很熟悉的东西是不愿意第一去看的).结果选择良久,还是jquery easyui treegrid这个例子自己看起来比较熟悉.于是就专心研究了,从官方网站http://www.jeasyui.net/下载了demo,开始研读.先把jsp页面一些代码贴出 <link rel="s

第二百二十八节,jQuery EasyUI,TreeGrid(树形表格)组件

jQuery EasyUI,TreeGrid(树形表格)组件 学习要点: 1.加载方式 2.属性列表 3.事件列表 4.方法列表 本节课重点了解 EasyUI 中 TreeGrid(树形表格)组件的使用方法,这个组件依赖于 DataGrid(数据表格)组件. 一.加载方式 建立一个 JSON 文件 [ { "id": 1, "name": "系统管理", "date": "2015-05-10", &quo

XXX系统开发小结(SSH+Jquery EasyUI)

一.项目总体介绍 前一段时间的工作中,笔者大概用了两三个月开发了一个Web管理信息系统,使用的框架集为Struts2.3.1+Spring3.0+Hibernate3+Jquery EasyUI1.3.5,系统业务逻辑并不复杂,完成数据的采集(以问卷的形式).计算处理和形成报告发布.EasyUI是一个很优秀的JS UI框架,使用简单方便,效果也还可以,是UI效果和带宽速度之间的一个折中之选.系统中还有新闻发布模块,用到了富文本编辑器,在比较了很多插件之后,选择了kindeditor,原因很简单,

用户界面框架jQuery EasyUI示例大全之TreeGrid

<jQuery EasyUI最新试用版免费下载> jQuery EasyUI致力于帮助web开发者更轻松的打造出功能丰富并且美观的UI界面.jQuery EasyUI提供了基于当下流行的jQuery core和HTML5的控件,助您打造适合当今网络的应用程序. 基本的树网格 本演示主要为大家演示了基本的树网格,树网格允许您展开或折叠一组行.[另附源代码供大家参考] |在线Demo 树网格的线 该演示主要展示了如何显示树网格的线.[另附源代码供大家参考] |在线Demo 树网格操作 本演示主要展

jQuery EasyUI API 中文文档

http://www.cnblogs.com/Philoo/tag/jQuery/ 共2页: 1 2 下一页 jQuery EasyUI API 中文文档 - 树表格(TreeGrid) 风流涕淌 2011-11-19 18:51 阅读:25025 评论:3 jQuery EasyUI API 中文文档 - 树(Tree) 风流涕淌 2011-11-18 20:13 阅读:31937 评论:2 jQuery EasyUI 1.2.4 API 中文文档(完整)目录 风流涕淌 2011-11-17

jquery easyui根据需求二次开发记录

1.tree需要显示多个图标 实际需求:设备树上节点需搁三个图片,分别标识运行状态.告警状态.设备类型 解决方法:给tree的iconCls传入一个数组,分别是各状态下的class(css),然后要改动easyui关于tree节点组装部分的代码 if(item.iconCls ){ cc.push("<span class=\"tree-icon tree-folder "+(item.iconCls?item.iconCls:"")+"\

easyui treegrid实现显示checkbox并能获取到选定值的

闲聊: 小颖最近忙疯了,经常被加班,昨天都要下班了,又提了个需求,虽然写的代码不多只有几行,可是测试环境很难跑通,一会就ie崩溃了,所以弄得小颖最近老是头晕. 也不知道最近是怎么了,一向特别爱吃的小颖,最近很没有食欲,中午不好好吃饭,就吃一个苹果,再吃几口米然后就饱了,晚上回去也不是很饿,但是到下午就开始头晕,哎!不知道自己是怎么了,昨天下午我们家大颖给我吃零食,我说我没有胃口,旁边的同事都笑了,都说不相信,我那么爱吃的人,竟然会说没胃口不想吃······,可是我真的不想吃啊啊啊啊啊啊啊.好啦不

Jquery easyui 源代码分析之easyloader

Jquery easyui是一个javascript UI 组件库,使用它可以快速开发企业级的业务系统.如果你正准备开发系统后台,可以选择jquery easyui,也可以选择Ext JS.我个人的看法是,如果开发团队就两三个人,开发工期很短,就一两个月.那么选择jquery easyui就对了,jquery easyui源代码量不多,便于阅读和自行修改.而Ext JSy源代码太多,短时间很难看完,学习曲线也比较陡峭.如果人手充足,时间也富裕,可以考虑使用Ext JS来开发,毕竟Ext JS更强