zoukankan      html  css  js  c++  java
  • (转)jquery easyui treegrid使用小结 (主要讲的是如何编辑easyui中的行信息包括添加 下拉列表等)

    在实际应用中可能会碰到不同的需求,比如会根据每行不同的参数或属性设置来设置同列不同的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',300,  
                      formatter:function(value){  
                       return '<span style="color:red">'+value+'</span>';  
                      }  
                     }  
        ]],  
        columns:[[  
            {title:'library',field:'library',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',100,editor:'text'},  
         {title:'type',field:'type',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',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',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',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',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',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',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',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',100,editor:'text',  
          formatter:function(value,row){  
           if(row.leaf){  
            return value;  
           }else{  
            return '';  
           }  
          }},  
         {title:'VM',field:'vm',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,操作上只需要双击和单击两个事件来完成操作,而另两个事件是在中间自动实现完成。  
    View Code
  • 相关阅读:
    Penetration Test
    Penetration Test
    Penetration Test
    Penetration Test
    controller配置方式总结(继上)
    架构师的自我修养
    SpringMVC快速入门
    第十六章:字节流与字符流
    第十五章:文件操作
    第十四章:类库使用案例分析
  • 原文地址:https://www.cnblogs.com/wangyt223/p/5821631.html
Copyright © 2011-2022 走看看