`

Extjs可编辑的EditorGridPanel

阅读更多

edit_grid.js

Ext.onReady(function() {
	
	//grid中的复选框
	var sm = new Ext.grid.CheckboxSelectionModel();
	//数据存储器
	var ds = new Ext.data.Store({
		proxy : new Ext.data.HttpProxy({
			url : "../zdbnr.action?method=page",
			method : "post"
		}),
		reader : new Ext.data.JsonReader({    //读取json数据 
					root : "newsList",
					totalProperty : 'totalProperty' //总记录数
				}, [{
							name : "id"
						}, {
							name : "dataParamId"
						}, {
							name : "code"
						}, {
							name : "content"
						}, {
							name : "parentCode"
						}])
	});
	//创建列  
	var cm = new Ext.grid.ColumnModel([
			sm,     //复选框   
			{
				header : "编号",
				dataIndex : "id",
				sortable : true
			}, {
				header : "字典表编号",
				dataIndex : "dataParamId",
				width : 100
			}, {
				header : "代码",
				dataIndex : "code",
				width : 110,
				editor:new Ext.form.NumberField({  //设定可编辑的列
					allowBlank : false,
					maxLength : 20
				})
			}, {
				header : "内容",
				dataIndex : "content",
				width : 150,
				editor:new Ext.form.TextField()    //设定可编辑的列
			}, {
				header : "父代码",
				dataIndex : "parentCode",
				width : 110
	}]);
	cm.defaultSortable = true;// 默认可排序
	
	//创建Grid
	var grid = new Ext.grid.EditorGridPanel({
				el : "grid",
				ds : ds, 
				title : "代码列表",
				width : 600,
				height : Ext.get("content").getHeight()/2+20,
				cm : cm,
				loadMask : {
					msg : '正在加载数据,请稍侯……'
				},
				sm : sm,
				clicksToEdit : 1,  //单击编辑
				// 下边
				bbar : new Ext.PagingToolbar({
							pageSize : 10,
							store : ds,
							displayInfo : true,
							displayMsg : ' 显示第 {0} 条到 {1} 条记录,一共 {2} 条',
							emptyMsg : ' 没有记录'
						})
			});
	grid.render(); //组件渲染之后触发
	ds.load({params : {start : 0,limit : 10}}); //加载数据
	
	grid.addListener("afteredit",function(obj){
		var e=obj.record;
		if(e.get("parentCode")==e.get("code")){
			Ext.Msg.alert("验证提示","当前代码不能和父代码相同");
			return false;
		}
		Ext.Ajax.request({
				url : '../zdbnr.action?method=editGridUpdate',
				params : {
					id : e.get("id"),
					content : e.get("content"),
					code : e.get("code")
				},
				success : function() {
					// alert("数据修改成功!");
				},
				failure : function() {
					Ext.Msg.show({
						title : '错误提示',
						msg : '修改数据发生错误,操作将被回滚!',
						buttons : Ext.Msg.OK,
						icon : Ext.Msg.ERROR
					});
				}
			});
	});
	
});
 
/**
	 * 分页读取Grid内容
	 * @param request
	 * @param response
	 * @return
	 */
	@RequestMapping(params = "method=page")
	public ModelAndView page(HttpServletRequest request,
			HttpServletResponse response) {
		int start;
		try {
			start = Integer.parseInt(request.getParameter("start"));
		} catch (NumberFormatException e1) {
			start = 0;
		}
		int limit;
		try {
			limit = Integer.parseInt(request.getParameter("limit"));
		} catch (NumberFormatException e1) {
			limit = 10;
		}
		SysDataParamContent nr = new SysDataParamContent();
		nr.setDataParamId(10200);
		List<SysDataParamContent> list = dataZxZdbnrService.findZdbnrByPage(nr,
				start,limit);
		int totalProperty = dataZxZdbnrService.findByCont(10200);
		JSONArray jsonArray = new JSONArray();
		Iterator ite = list.iterator();
		while (ite.hasNext()) {
			SysDataParamContent s = (SysDataParamContent) ite.next();
			Map map = new HashMap();
			map.put("id", s.getId());
			map.put("dataParamId", s.getDataParamId());
			map.put("code", s.getCode());
			map.put("content", s.getContent());
			map.put("parentCode", s.getParentCode());
			map.put("levels",s.getLevels());
			jsonArray.add(map);
		}
		String jsonStr = jsonArray.toString();
		String jsonString = "{start:" + start + ",limit:" + limit
		+ ",totalProperty:" + totalProperty + ",newsList:" + jsonStr
		+ "}";
		response.setContentType("text/html;charset=utf-8");
		try {
			response.getWriter().write(jsonString);
		} catch (IOException e) {
			e.printStackTrace();
		}

		return null;
	}

@RequestMapping(params = "method=editGridUpdate")
	public ModelAndView editGridUpdate(HttpServletRequest request,
			HttpServletResponse response, String id,String content,String code) throws Exception {
		response.setContentType("text");
		response.setCharacterEncoding("UTF-8");
		SysDataParamContent syscon = new SysDataParamContent();
		syscon.setDataParamId(10200);
		syscon.setContent(content);
		syscon.setId(Integer.parseInt(id));
		syscon.setCode(code);
		String result = "";
		int ret =dataZxZdbnrService.update(syscon);
		if(ret>0){
			result = "{message:'修改成功!',success:true}";
		}
		response.getWriter().write(result);
		return null;
	}
 
<html>
	<head>
		<title>form.html</title>
		<script type="text/javascript" src="../extjs3/adapter/ext/ext-base.js"></script>
		<script type="text/javascript" src="../extjs3/ext-all-debug.js"></script>
		<link rel="stylesheet" type="text/css"
			href="../extjs3/resources/css/ext-all.css" />
		<script type="text/javascript" src="js/edit_grid.js"></script>
	</head>
	<body>
		<div id="content" style="width: 100%; height: 100%">
			<div id="grid"></div>
		</div>
	</body>
</html>
 
分享到:
评论

相关推荐

    Extjs EditorGridPanel中ComboBox列的显示问题

    在EXTJS中,EditorGridPanel是一种可编辑的表格组件,它允许用户直接在表格单元格内编辑数据。然而,当在EditorGridPanel中嵌入ComboBox(下拉选择框)作为编辑器时,可能会遇到一个问题,即ComboBox显示的不是其...

    ExtJS 2.0实用简明教程

    22)可编辑表格EditorGridPanel 23)窗口基本应用 24)窗口分组 25)对话框 26)与服务器交互 27)Record 28)Store 29)TreePanel基本使用 30)使用树控件TreeNode 31)使用树控件TreeLoader 32)自定义TreeLoader

    extjs xtype

    10. `editorgrid` - `Ext.grid.EditorGridPanel`:可编辑的表格,允许用户直接在表格中修改数据。 11. `grid` - `Ext.grid.GridPanel`:标准的表格组件,用于展示数据。 12. `paging` - `Ext.PagingToolbar`:分页...

    ExtJS下拉列表树控件

    在实际应用中,可能还需要处理一些特殊需求,如控制单元格是否可编辑。这可以通过监听`beforeedit`事件来实现,根据业务逻辑判断是否允许编辑: ```javascript grid.on('beforeedit', function(editor, e) { if ...

    Extjs in action

    - **编辑网格面板**:进一步探讨了`EditorGridPanel`,这是一种可以编辑表格数据的增强型网格面板。 - **数据视图和列表视图**:介绍了`DataView`和`ListView`组件,它们适用于显示大量数据。 - **图表组件**:讲解...

    extjs扩展标记

    1. **EXTJS组件**:EXTJS的核心是它的组件模型,包括GridPanel、TreePanel、PropertyGrid、EditorGridPanel、TabPanel、FormPanel、Panel、Window、ToolTip和FieldSet等。这些组件可以组合起来创建复杂的用户界面,...

    ExtJS2.0实用简明教程

    **八、可编辑表格EditorGridPanel** `EditorGridPanel`是GridPanel的一个扩展,它允许用户直接在表格单元格内编辑数据。这对于数据录入和管理非常有用,可以结合各种编辑器实现复杂的数据输入需求。 **九、Ext类库...

    ExtJS增删改查

    对于大多数Web应用程序而言,这种功能几乎是不可或缺的。下面我们将详细介绍如何使用ExtJS来实现这些功能。 #### 二、创建Grid的基本结构 创建Grid通常涉及到三个主要部分:`Store`、`ColumnModel`和`GridPanel`。...

    ExtJs组件类的对应表

    11. **`editorgrid`** - `Ext.grid.EditorGridPanel`,可编辑的表格组件,允许用户直接在表格中编辑数据。 12. **`propertygrid`** - `Ext.grid.PropertyGrid`,属性表格组件,用于展示对象的属性。 13. **`...

    extjs培训2011-12-17

    - `editorgrid`: `Ext.grid.EditorGridPanel` — 可编辑的表格。 - `grid`: `Ext.grid.GridPanel` — 表格。 - `panel`: `Ext.Panel` — 面板。 - `progressbar`: `Ext.ProgressBar` — 进度条。 - `splitbutton`: `...

    ExtJs2.0简明教程

    #### 7.2 可编辑的表格EditorGridPanel EditorGridPanel是一种特殊的GridPanel,它允许用户直接在表格中编辑数据。这对于需要频繁更新数据的应用来说非常方便。 #### 7.3 与服务器交互 ExtJS提供了强大的数据处理...

    ExtJS in Action-英文原版-完整版

    - 第三部分介绍数据驱动的组件,如网格面板(GridPanel)、编辑器网格面板(EditorGridPanel)、数据视图和列表视图(DataView和ListView)、图表(Charts)、树形结构(trees)以及菜单、按钮和工具栏(Menus, ...

    extJs xtype 类型

    11. **`editorgrid`:** 可编辑的表格组件,允许用户直接在表格中编辑数据,通过`Ext.grid.EditorGridPanel`类实现。 12. **`propertygrid`:** 属性表格组件,用于展示对象的属性列表,通过`Ext.grid.PropertyGrid`...

    ssh+extjs4.0grid增删改查

    - 配置Grid面板,定义列模型,设置列的宽度、对齐方式、可编辑性等属性。 - 添加EditorGridPanel,允许在Grid中直接编辑单元格数据。 - 实现Model和Proxy,Model定义数据字段,Proxy配置数据源,如JsonP或Restful...

    extjs的快速入门教程

    - **可编辑的表格(EditorGridPanel)**: - 在表格的基础上增加了编辑功能,用户可以直接修改数据。 #### 七、与服务器交互 - **数据存储(Store)**: - 存储和管理数据集,支持本地数据和远程数据加载。 - **...

    ExtJs xtype一览

    - **`editorgrid` (Ext.grid.EditorGridPanel)**: 可编辑的表格组件,允许用户直接在表格内进行数据编辑。 - **`propertygrid` (Ext.grid.PropertyGrid)**: 属性表格组件,专门用于展示对象的属性。 - **`editor` ...

Global site tag (gtag.js) - Google Analytics