`

纪念下Ext.grid.CheckColumn设可编辑状态

 
阅读更多

为了extjs这个功能,花了一天多,张把这个功能解决了;

上代码了.

引用的extjs2.2.1是ext/plugin/CheckColumn.js

 

 

  var win;
    var right_store;
    //value:catId
    //privTypes:'cat'
   function setRight(value,privTypes){
   	
     /// if(window) return window;
        var sm = new Ext.grid.CheckboxSelectionModel();
  // var cm = new Ext.grid.ColumnModel([new Ext.grid.RowNumberer(),sm, {header:'编号',dataIndex:'id'},{header:'名称',dataIndex:'name'},{header:'描述',dataIndex:'descn'}]);
  
        var saveas=new Ext.grid.CheckColumn({
    				header: '查阅',
		            dataIndex: 'saveas',
		           //  xtype: 'checkcolumn',
		            width: 70
		          });
	    	var enabled=new Ext.grid.CheckColumn({
    				header: '编辑',
    				  dataIndex: 'enabled',
		            width: 70
		           
    			});
    		var deleted=new Ext.grid.CheckColumn({
    				header: '删除',
    				  dataIndex: 'deleted',
		            width: 70
    			});
    		var granted=new Ext.grid.CheckColumn({
    				header: '授权',
    			    dataIndex: 'granted',
		            width: 70 
    			});
    			
     		  
        var cm = new Ext.grid.ColumnModel({
   	
   	
		columns : [sm,  {
			header : "id",
			dataIndex : "id",
			hidden : true
		}, {
			header : "对象名称",
			dataIndex : "relateName",
			width : 100
		}, {
			header : "类别",
			dataIndex : "type",
			width : 100,
		  renderer : function(value) {
				   if(value == "U" ||value == "ALL"){
						return "机构成员";
					}else if(value == "R"){
						return "角色";
					}else if(value == "D"){
						return "机构部门";
					}else if(value == "G"){
						return "组对象";
					}
				
				return value;
			}
		}, {
			header : "位置",
			dataIndex : "position",
			width : 100
		}, saveas,enabled,deleted,granted]});
		         
		   
		
	 initData = function() {
	var ds = new Ext.data.JsonReader({
		root : "list",
		fields:["id","relateName","type","position","saveas","enabled","deleted","granted"]
		/*fields : [{name:"id",type:"string"},
				  {name:"relateName",type:"string"},
				  {name:"type",type:"string"},
				  {name:"position",type:"string"},
				  {name:"saveas",type:"bool"},
				  {name:"enabled",type:"bool"},
				  {name:"deleted",type:"bool"},
				  {name:"granted",type:"bool"}]*/
	});

	var store = new Ext.data.Store({
		 autoDestroy: true,
	 	proxy : new Ext.data.HttpProxy({
			url : requestContextPath + "/desktopapp/getsharedres.do"
		}),
		reader : ds
	});
	store.on('beforeload', function(thiz, options) {
		
		thiz.baseParams["resId"] = value;
		thiz.baseParams["resType"] = 2;
		thiz.baseParams["loginWay"] = "web";
	});

	return store;
};
  right_store =initData();
   var grid = new Ext.grid.EditorGridPanel({
     region:'center',//居中
     store:right_store,//数据
     cm:cm,//列类似于数据库一样的结构
     sm:sm,//有多选框
       clicksToEdit: 1,
     loadMask:true,//加载loading条
     c     
    });
 
   right_store.load({param:{resId:value,resType:"2",loginWay:"web"}});
   
    win= new Ext.Window(
    {
    
      width:700,
      height:400,
      title:"权限设置",
       layout:'fit',
       items: [grid],
      buttons:[
      	
      		{text:'添加授权成员',
                handler:function(){
                  debugger;
		            var array =[];
						  array.push(value);
				       selectRight(Ext.encode(array),privTypes);
                }
               },
               	{text:'删除',
                handler:function(){
                  var b = grid.getSelectionModel().getSelections();
					if (b.length == 0) {
						Ext.Msg.alert("信息提示", "请选择要删除的记录!");
						return;
					}
					  
					 
				
					Ext.Msg.confirm("信息确认", "您确认要删除该记录吗?", function(c) {
						if (c == "yes") {
								for (var c = 0; c < b.length; c++) {
					            right_store.remove(b[c]);
				     	    }
						   
                }});
               }},
      			{text:'授权',
                handler:function(){
                	  debugger;
                	    var objList="";
                	    var str="";
                	    for(var k =0;k<right_store.data.length;k++){
                	        var obj =right_store.data.items[k].data;
                	          if(obj.type=="ALL"){
                	          	obj.type="U";
                	           }
                	             str=obj.id+","+obj.type+","+obj.saveas+","+obj.enabled+",1,1,"+obj.deleted+","+obj.granted+";";
                	            objList+=str;
                	    }
                	    
                     	Ext.Ajax.request({
								url : requestContextPath
										+ "/datapriv/saveExtDataprivGrants.do",
								params : {
									catId :value,
									delbefore:"1",
									resp:"2",
									extendparentpriv:"0",
									objList:objList
								},
								method : "post",
								success : function(response) {
									var text = Ext.util.JSON.decode(response.responseText);
									   var result =text.result;
									///  formPanel.getForm().setValues(result);
									///Ext.Msg.alert("信息提示", "成功删除所选记录!");
								 	
								}
							});
                 
                }
              },
              
              {text:'取消',
                handler:function(){
                  win.hide();
                }
               }
              ]
    });
    win.show();
    
   }
   

 

/desktopapp/getsharedres.do请求后的数据

{"list":[{"deleted":1,"enabled":1,"enddate":null,"granted":1,"id":"402880e5408f6bf801408f7312510002","memberId":"","position":"中山供电局","printpriv":1,"readonly":0,"relateName":"小燕","saveas":1,"startdate":null,"type":"U","visible":1}],"result":{"ResultCode":"0","Reason":""}}

 其中deleted这里可以表示1,0或true,false;

plugins:[saveas,enabled,deleted,granted]  //切记一定要写这句,否则将不可编辑

 

 

 

  • 大小: 14.6 KB
0
5
分享到:
评论

相关推荐

    Ext.grid.GridPanel属性祥解

    ### Ext.grid.GridPanel属性详析 #### 一、Ext.grid.GridPanel概述 `Ext.grid.GridPanel`是ExtJS中用于展示表格数据的核心组件之一。它提供了丰富的配置选项和方法来帮助开发者灵活地控制表格的表现形式及功能。...

    可编辑表格Ext.grid.EditorGridPanel

    Ext.grid.EditorGridPanel是Ext JS库中的一个组件,主要用于创建具有可编辑单元格的表格。这个组件在数据展示和编辑方面提供了丰富的功能,是构建数据密集型应用的理想选择。下面将详细阐述其特点、工作原理及如何...

    ExtJS 4.0 改善Ext.grid.plugin.RowEditing (重构,v1.4版本,2011-09-11)

    这篇文章的标题指出这是一个关于“Ext.grid.plugin.RowEditing”的重构,版本为v1.4,发布日期为2011年9月11日。重构通常意味着代码的改进,可能涉及性能优化、错误修复或功能增强。在4.0版本中,RowEditing插件的...

    Ext grid panel 滚动条位置不变

    Ext.override(Ext.grid.GridView, { scrollTop: function () { this.scroller.dom.scrollTop = 0; this.scroller.dom.scrollLeft = 0; }, scrollToTop: Ext.emptyFn }); ``` 这里的`scrollTop`方法将滚动条...

    Ext.grid.ColumnModel显示不正常

    Ext.grid.ColumnModel显示不正常

    EXt 可以编辑的grid

    在EXT JS这个强大的JavaScript框架中,"EXt 可编辑的grid"是一个常见的应用场景,它允许用户在数据网格中直接编辑单元格内的数据。EXT JS的CellEditing插件是实现这一功能的关键,它提供了优雅的方式来处理表格数据...

    Ext.ux.touch.grid-master.rar

    Ext.ux.touch.grid-master 是一个专门针对移动设备开发的JavaScript库,主要应用于开发触控友好的数据网格。这个压缩包包含的是EXTJS Touch框架的一个扩展组件,EXTJS Touch是Sencha公司开发的一个轻量级、高性能的...

    Ext.get与Ext.fly的区别

    ### Ext.get与Ext.fly的区别 在Ext JS框架中,`Ext.get`和`Ext.fly`是两个非常重要的方法,它们主要用于操作DOM元素。理解这两个方法之间的区别以及如何使用它们对于开发高质量、高效率的应用程序至关重要。 #### ...

    extjs-Ext.ux.form.LovCombo下拉框

    在EXTJS框架中,`Ext.ux.form.LovCombo`是一种自定义组件,它扩展了基本的`Ext.form.field.ComboBox`,提供了更丰富的功能,尤其是针对多选和联动选择的需求。这个组件通常用于创建具有“lov”(即“Look Up Value”...

    封装Ext.grid.Grid+dwr实现增删该查

    `Ext.grid.Grid`是Ext JS库中的一个组件,用于创建可交互的数据网格,而DWR(Direct Web Remoting)则是一种允许JavaScript和Java在浏览器端进行安全、高效通信的技术。本篇文章将深入探讨如何利用这两者结合,实现...

    Ext.grid.GridPanel 删除线

    Ext.grid.GridPanel 删除线 放到example文件夹下运行

    Ext4.2的Ext.grid.plugin.RowExpander无法触发事件解决办法

    在Ext JS库中,`Ext.grid.plugin.RowExpander`是一个扩展插件,用于在网格行中添加可展开的详情区域。在Ext4.2版本中,用户可能遇到一个特定的问题,即`RowExpander`的`collapsebody`和`expandbody`事件无法正常触发...

    Ext.Ajax.request2.x实现同步请求

    在EXTJS库中,`Ext.Ajax.request`是用于发送Ajax请求的核心方法,它支持异步和同步操作。本文将详细解析如何利用`Ext.Ajax.request`实现同步请求,并探讨其背后的原理和注意事项。 首先,我们需要理解Ajax的本质,...

    Ext.data.Store的基本用法

    ### Ext.data.Store的基本用法详解 #### 一、Ext.data.Store简介 `Ext.data.Store`是ExtJS框架中用于管理数据的核心组件之一。它主要负责数据的存储、加载、更新等操作,并且提供了多种方法来方便地处理这些数据。...

    Ext.get与Ext.fly 的区别

    在EXTJS这个强大的JavaScript框架中,`Ext.get`和`Ext.fly`是两个非常重要的方法,它们都用于操作DOM元素,但它们之间存在着微妙的差异。了解这些差异对于优化代码性能和理解EXTJS的工作机制至关重要。 首先,`Ext....

    org.restlet.ext.spring.jar

    org.restlet.ext.spring.jar

    EXT.form组件

    6. `fieldset`:`Ext.form.FieldSet`是用于组织和分组表单字段的容器,通常包含一个标题和可选的边框。 7. `hidden`:`Ext.form.Hidden`是隐藏字段,用于存储不显示在表单界面中的数据。 8. `htmleditor`:`Ext....

    Ext.Store的获取方法

    在Ext.js中,`Ext.Store`是用来管理数据的类,它通常与各种UI组件(如Grid、ComboBox等)关联,用于存储和检索数据。然而,获取`Ext.Store`的方式并不像获取其他Ext组件那样直接,因为Store并不是一个具有可视界面的...

    extjs4.1-ux.rar

    2、Ext.ux.grid.feature.Tileview 3、Ext.ux.upload.Button 4、Ext.ux.toggleslide.ToggleSlide 5、Ext.ux.container.ButtonSegment 6、Ext.ux.grid.plugin.RowEditing 7、Ext.ux.grid.plugin.DragSelector 8、Ext....

Global site tag (gtag.js) - Google Analytics