`
YTWY001
  • 浏览: 30370 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

Ext可编辑grid

阅读更多

 

//创建recode结构
	     var recode =Ext.data.Record.create([
	     		{name:"productProjectId",mapping:0},
	     		{name:"productName",mapping:1},
	     		{name:"searchBtn",mapping:2},
	     		{name:"productNum",mapping:3},
	     		{name:"accountMoney",mapping:4},
	     		{name:"costMoney",mapping:5}
	     	]);
	     //创建data
	     var data =[];
	     //创建reader
	     var reader =new Ext.data.ArrayReader({},recode);
	     //创建一个store返回规范的recode对象
	     var store =new Ext.data.Store(
	              {
	              	  proxy:new Ext.data.MemoryProxy(data),
	            	  reader:reader,
	                pruneModifiedRecords :true
	              });
	     //加载数据
	     store.load();
		
		//定义表格编号
		var rowNumber = new Ext.grid.RowNumberer({
			sortable: true
		})
		//创建列
		var cm = new Ext.grid.ColumnModel([
			//rowNumber,
			{
				header: 'productProjectId',
				dataIndex: 'productProjectId',
				hidden: true,
				sortable:true,
				editor:new Ext.grid.GridEditor(new Ext.form.TextField({allowBlank:true}))
			},					
			{
				header:"商品/项目",
				dataIndex:"productName",
				sortable:true,
				editor:new Ext.grid.GridEditor(new Ext.form.TextField({allowBlank:true,readOnly:true}))
			},
			{
				header:"操作",
				dataIndex: 'searchBtn',
				align: 'center',
				renderer:function(){
					return '<img src=\"'+ ctxPath +'/resource/image/systemIcon/47.png\" style=\"cursor:pointer;\" onclick=\"javascript:settleBtnExp();\" />';
				}
			},					
			{
				header:"数量",
				dataIndex:"productNum",
				sortable:true,
				editor:new Ext.grid.GridEditor(new Ext.form.NumberField({
																		allowBlank:true,
																		maxLength:3
																		}))
			},					
			{
				header:"应收金额",
				dataIndex:"accountMoney",
				sortable:true,
				editor:new Ext.grid.GridEditor(new Ext.form.NumberField({allowBlank:true,readOnly:true}))
			},		
			{
				header:"实收金额",
				dataIndex:"costMoney",
				sortable:true,
				editor:new Ext.grid.GridEditor(new Ext.form.NumberField({allowBlank:true}))
			}					
		]);	
    	
		
	    var tbar = new Ext.Toolbar({
		     items:[{
			       text: "添加一行",
			       iconCls:"blist",
			       handler:function(){
			      		//定义一个recode对象
					    var initValue={productProjectId:"",productName:"",searchBtn:"",productNum:"",accountMoney:"",costMoney:""};
					    var p =new recode(initValue); //根据上面创建的recode 创建一个默认值
						grid.stopEditing();
						store.insert(0,p);//在第一个位置插入
						grid.startEditing(0,1);//指定的行/列,进行单元格内容的编辑
						p.dirty=true;
						p.modified=initValue;
						if(store.modified.indexOf(p)==-1){
					         store.modified.push(p);
      					 }
			       }
			 },"-",{
			       text:"删除",
			       iconCls:"delCls",
			       handler:function(){
					 	var sm = grid.getSelectionModel();
					 	var cell = sm.getSelectedCell();
						if (Ext.isEmpty(cell)) {
							Ext.Msg.alert('提示', '你没有选中行');
							return ;
						}
						var record = store.getAt(cell[0]);
						Ext.MessageBox.confirm('确认', '你确认要删除'+record.get('productName')+'这行吗?', function(btn){  
		            		if(btn=='yes'){  
								store.remove(record);
							}
		            	});
		              /* 此种方法用于带单选按钮的gridCheckboxSelectionModel	
		              var ds = grid.getStore();
						var selectedRow = grid.getSelectionModel().getSelected();
						if(selectedRow){
							Ext.MessageBox.confirm('确认', '你确认要删除这行吗?', function(btn){  
			            		if(btn=='yes'){  
									ds.remove(selectedRow);
								}
			            	});
		            	}else{
		            		Ext.Msg.alert("提示", "请选择一条需要删除的记录!");
		            	}*/
			       }
		     }]
	    });	
	    
	    // 定义分页条
	    var bbar = getBarPaging(store, 'dtlBbarExt', false, function (){
	    	//var keyId = Ext.getCmp("settleId").getValue();
   			store.reload({
				params : {
					start : 0,
					limit : bbar.pageSize
					//'memberSettleAccount.settleId': keyId
				}
			});	    	
	    });	    
	    
		var grid = new Ext.grid.EditorGridPanel({
			columnWidth : 1,
			height: 200,
			store: store,
			cm: cm,
			id: 'listGridDtlExp',
			clicksToEdit : 1, // 单击、双击进入编辑状态
			autoScroll : true,
			stripeRows: true, // 斑马线			
			loadMask: true,
			loadMask: {
				msg:'正在加载数据.....'
			},
			tbar: tbar,
			//bbar: bbar,
			frame: true
		})	
// 检查新增行的可编辑单元格数据合法性
var m = gridstore.modified.slice(0);
					for (var i = 0; i < m.length; i++) {
						var record = m[i];
						var rowIndex = store.indexOfId(record.id);
						var value = record.get(colName);
						if (Ext.isEmpty(value)) {
							// Ext.Msg.alert('提示', '数据校验不合法');
							return false;
						}
						var colIndex = cm.findColumnIndex(colName);
						var editor = cm.getCellEditor(colIndex).field;
						if (!editor.validateValue(value)) {
							// Ext.Msg.alert('提示', '数据校验不合法');
							return false;
						}
					}
 
分享到:
评论

相关推荐

    ext 读取xml 可编辑grid

    在EXT JS框架中,"ext 读取xml 可编辑grid"是一个常见的需求,涉及到的主要知识点包括EXT的数据对象、EditorGridPanel的使用以及EXT对XML数据格式的支持。下面将详细阐述这些内容。 EXT JS是一个强大的JavaScript库...

    EXt 可以编辑的grid

    综上所述,EXT JS的可编辑grid功能结合CellEditing插件,提供了一种直观且高效的用户交互方式,使得用户可以直接在grid中修改数据。通过理解并实践上述步骤,开发者可以创建出功能完备、用户体验良好的数据编辑界面...

    EXT-JS Grid 用法

    Grid提供了一种高效、可定制的表格视图,允许用户进行数据浏览、排序、筛选、分页以及编辑。EXT Designer是Sencha公司提供的一个可视化设计工具,它可以帮助开发者更加直观地构建EXT-JS应用程序,包括Grid组件。 ...

    EXT2.0 GRID 示例

    2. **列配置**:GRID的列可以通过配置对象定制,包括列宽、标题、对齐方式、是否可排序、可编辑等属性。还可以添加自定义的列渲染器来改变数据显示样式。 3. **行编辑**:EXT GRID支持行内编辑,用户可以直接在表格...

    可编辑表格Ext.grid.EditorGridPanel

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

    jq-extgrid v1.2 表格插件

    extgrid 是一款jquery上的gird插件 界面风格采用了类似easyui extjs 界面风格样式 可通过css修改自己想要的样式 extgrid具有列大小 位置改变 排序 分组 分页 工具栏 扩展行 rowNumber 多选列 编辑列 行列锁 ajax...

    ext grid 显示数据

    EXT JS的Grid组件提供了丰富的功能,如分页、排序、过滤、编辑等,可以灵活地适应各种业务需求。以下是一些关于EXT JS Grid的重要知识点: 1. **创建Grid**: 首先,创建一个Grid需要定义基本配置,如数据源(store...

    ext grid tree 应用

    在EXT JS框架中,"ext grid tree 应用"是一个常见的功能组合,它结合了Grid面板和Tree面板的优势,用于展示复杂的数据结构。Grid通常用于显示二维表格数据,而Tree则用于展示层次化的数据。在这个例子中,开发者通过...

    Ext自定义Grid Cell插件

    同时,这也体现了Ext JS框架的灵活性和可扩展性,开发者可以根据项目需求定制化Grid的每一部分,实现高度个性化的数据操作界面。在深入研究`Ext Grid CellEdit`的过程中,了解和掌握组件化开发思想、事件处理机制...

    Ext grid与树实例

    在Ext Grid中,你可以定义列(columns)来展示数据的不同属性,通过store来绑定数据源,以及使用各种插件和功能,如行选择、分组、自定义编辑等。在提供的"extdemo"压缩包中,可能包含了一个展示如何创建和配置Grid...

    EXT grid导出EXCEL

    3. **转换为SheetJS可读格式**:将EXT Grid的数据转换为SheetJS理解的二维数组格式。每一行代表store中的一条记录,每列对应记录的一个字段。 4. **创建工作簿**:使用SheetJS创建一个新的工作簿,并添加工作表。...

    一个很好的EXTGRID实例

    2. **列配置**:EXTGRID允许自定义列,包括列宽、标题、对齐方式、可排序性等,可以展示不同类型的数据,如文本、数字、日期等。 3. **分页**:EXTGRID支持分页功能,用户可以轻松浏览大量数据,提高性能。 4. **...

    editTreeGrid ext可编辑的treegridpanel

    要创建一个可编辑的TreeGrid,你需要配置`columns`来定义每列的显示和编辑规则,使用`Ext.grid.plugin.CellEditing`插件,并为每个需要编辑的列指定`editor`属性。同时,还需要确保树的数据源(`store`)能够处理...

    Ext2.2-用XML做数据源,可编辑Grid的例子.rar

    本示例“Ext2.2-用XML做数据源,可编辑Grid的例子.rar”聚焦于如何利用Ext JS的Grid组件,并结合XML数据源来实现一个可编辑的数据网格。 在Web应用中,数据展示和编辑是常见的需求。Grid组件是Ext JS处理表格数据的...

    ext 双层表格 grid(附带图片)

    EXT JS Grid组件是一个高度可配置的表格视图,用于显示大量数据。它支持分页、排序、过滤、编辑等功能,并且可以通过增减列、添加插件等方式进行自定义。 2. **双层表头(Nested Headers)**: 双层表头是EXT JS ...

    Ext.grid.GridPanel属性祥解

    - 说明:判断指定位置的单元格是否可编辑。 综上所述,`Ext.grid.GridPanel`提供了非常全面且强大的功能,使得开发者能够根据实际需求灵活定制表格的样式和交互。通过深入了解这些配置选项和方法,可以更高效地...

    Ext 可编辑表格

    总结起来,Ext可编辑表格结合了丰富的UI组件和强大的数据管理能力,使得用户可以在界面上直接操作数据,大大提升了交互性和用户体验。理解并熟练运用这些技术,能帮助你构建出高效、功能完善的Web应用。

    Ext ComboboxGrid

    在Ext JS中,ComboBox通常用于显示一个可选的下拉列表,而Grid则用于展示大量数据并进行编辑和操作。ComboboxGrid将这两者融合,使得用户可以在输入框中输入关键字搜索,同时下拉展示匹配的网格数据,便于多维度筛选...

    用ext propertyGrid做的小例子

    标题中的“用ext propertyGrid做的小例子”表明这个压缩包包含了一个使用EXTJS库的Property Grid组件的示例。EXTJS是一个流行的JavaScript框架,用于构建富客户端Web应用程序,而Property Grid是一个数据展示组件,...

    最新的GT-Grid vs EXT-Grid例子(超级经典)

    GT-Grid与EXT-Grid都是用于构建高性能、可定制的表格视图的JavaScript库。GT-Grid通常以其高效的数据处理和强大的自定义功能受到赞誉,而EXT-Grid则以其丰富的内置功能和良好的用户体验而闻名。 首先,我们来看GT-...

Global site tag (gtag.js) - Google Analytics