在实际应用中可能会碰到不同的需求,比如会根据每行不同的参数或属性设置来设置同列不同的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="data:images/checkbox_checked.jpg"/>';
}else{
return '<img src="data: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="data:images/checkbox_checked.jpg"/>';
}else{
return '<img src="data: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="data:images/checkbox_checked.jpg"/>';
}else{
return '<img src="data: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="data:images/checkbox_checked.jpg"/>';
}else{
return '<img src="data: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="data:images/checkbox_checked.jpg"/>';
}else{
return '<img src="data: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="data:images/checkbox_checked.jpg"/>';
}else{
return '<img src="data: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="data:images/checkbox_checked.jpg"/>';
}else{
return '<img src="data: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="data:images/checkbox_checked.jpg"/>';
}else{
return '<img src="data: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,操作上只需要双击和单击两个事件来完成操作,而另两个事件是在中间自动实现完成。

(转)jquery easyui treegrid使用小结 (主要讲的是如何编辑easyui中的行信息包括添加 下拉列表等)的更多相关文章

  1. jquery easyui treegrid使用小结

    在实际应用中可能会碰到不同的需求,比如会根据每行不同的参数或属性设置来设置同列不同的editor类型,这时原有的例子就显的有点太过简单,不能实现我们的需求,现在应用我在项目中的操作为例,显示下实现同列 ...

  2. 适用于zTree 、EasyUI tree、EasyUI treegrid

    #region          System.Text.StringBuilder b_appline = new System.Text.StringBuilder();        Syste ...

  3. jquery获取元素在文档中的位置信息以及滚动条位置(转)

    jquery获取元素在文档中的位置信息以及滚动条位置 http://blog.csdn.net/qq_34095777/article/details/78750886     原文链接 原创 201 ...

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

    前几天修改了系统的一个功能——实现树形列列表的行拖拽,以达到排序的目的.现在基本上功能实现,现做一个简单的总结. 1.拿到这个直接网上搜,有好多,但是看了后都觉得不是太复杂就是些不是特别想看的例子,自 ...

  5. 基于EasyUI Treegrid的权限管理资源列表

    1. 前言 最近在开发系统权限管理相关的功能,主要包含用户管理,资源管理,角色管理,组类别管理等小的模块.之前的Web开发中也用过jQueryEasyUI插件,感觉这款插件简单易用,上手很快.以前用到 ...

  6. easy-ui treegrid 实现分页 并且添加自定义checkbox

    首先第一点easy-ui  treegrid 对分页没有好的实现, 因为在分页的过程中是按照 根节点来分页的  后台只能先按照 根节点做分页查询  再将子节点关联进去, 这样才能将treegrid 按 ...

  7. 数据网格和树-EasyUI Datagrid 数据网格、EasyUI Propertygrid 属性网格、EasyUI Tree 树、EasyUI Treegrid 树形网格

    EasyUI Datagrid 数据网格 扩展自 $.fn.panel.defaults.通过 $.fn.datagrid.defaults 重写默认的 defaults. 数据网格(datagrid ...

  8. EasyUi TreeGrid封装

    礼物一:树型实体的抽象与封装 所谓树型实体,就是具有树型结构关系的实体,比如省.市.区.对于初学者,可能会创建三张表进行存储,有经验的开发者通过引入ParentId将设计简化为一张表,但是基于Pare ...

  9. easyui treegrid idField 所在属性中值有花括号(如Guid)当有鼠标事件时会报错,行记录一下

    easyui treegrid idField 所在属性中值有花括号(如Guid)当有鼠标事件时会报错,行记录一下

随机推荐

  1. javascrip小笔记

    function getCookie(name) {//获取name为 var arr, reg = new RegExp("(^| )" + name + "=([^; ...

  2. LNK1123: 转换到 COFF 期间失败: 文件无效或损坏

    连接器LNK是通过调用cvtres.exe完成文件向coff格式的转换的,所以出现这种错误的原因就是cvtres.exe出现了问题. 在电脑里面搜索一下cvtres.exe,发现存在多个文件,使用最新 ...

  3. ES6新特性之模板字符串

    ES6新特性概览  http://www.cnblogs.com/Wayou/p/es6_new_features.html 深入浅出ES6(四):模板字符串   http://www.infoq.c ...

  4. Python应用科学计算和图表绘制

    今天更新了两个python模块,一个是用于科学计算的numpy模块,另一个是用于绘图的matplotlib模块 python安装模块还是很方便的,安装了pip之后直接使用"pip insta ...

  5. MaxScript重启3dsMax的重新思考

    前天看到一位大神写用MaxScript实现重启3dsMax的方法,用的是.net临时编译一个exe出来,然后用这个新的进程来关闭并开启新的max.感觉这种思路不错,或许可以用在别的地方.不过谈及max ...

  6. Android IOS WebRTC 音视频开发总结(八十六)-- WebRTC中RTP/RTCP协议实现分析

    本文主要介绍WebRTC中的RTP/RTCP协议,作者:weizhenwei ,文章最早发表在编风网,微信ID:befoio 支持原创,转载必须注明出处,欢迎关注我的微信公众号blacker(微信ID ...

  7. 你是否经常忘记网站上的各种密码?分享个密码管理软件LastPass

      现在网络那么发达,我们上网的每个人势必会在各个网站上登陆,那势必会有一堆密码需要管理,那怎么能记住那么多网站的密码呢?我之前的做法是设置几个常用的密码,好多不重要的网站用一个,重要的网站用一个,然 ...

  8. maven项目管理构建

    准备工作 在eclipse配置maven之前需要我们做好准备工作,如下: 1. 安装jdk 2. 已安装好 maven,将maven配置成功 3. 下载Eclipse,解压缩安装完成,建立工作空间.  ...

  9. CubieTruck上安装mjpg_streamer

    最近手头项目需要用到一个上位机,需要在上位机上实现远程访问及视频监控.其中视频监控采用了网上资料较多的mjpg_streamer进行视频处理.在使用中遇到许多坑也一并记录下来. 首先安装依赖环境和检测 ...

  10. 机器学习中的算法(1)-决策树模型组合之随机森林与GBDT

    版权声明: 本文由LeftNotEasy发布于http://leftnoteasy.cnblogs.com, 本文可以被全部的转载或者部分使用,但请注明出处,如果有问题,请联系wheeleast@gm ...