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是一种可编辑的表格组件,它允许用户直接在表格单元格内编辑数据。然而,当在EditorGridPanel中嵌入ComboBox(下拉选择框)作为编辑器时,可能会遇到一个问题,即ComboBox显示的不是其...
EXTJS 是一个强大的JavaScript前端框架,它主要用于构建富客户端应用,提供丰富的用户界面组件和灵活的可定制性。EXTJS 的核心在于其组件化的架构,允许开发者构建复杂的UI布局和功能丰富的应用程序。以下是对EXTJS...
22)可编辑表格EditorGridPanel 23)窗口基本应用 24)窗口分组 25)对话框 26)与服务器交互 27)Record 28)Store 29)TreePanel基本使用 30)使用树控件TreeNode 31)使用树控件TreeLoader 32)自定义TreeLoader
10. `editorgrid` - `Ext.grid.EditorGridPanel`:可编辑的表格,允许用户直接在表格中修改数据。 11. `grid` - `Ext.grid.GridPanel`:标准的表格组件,用于展示数据。 12. `paging` - `Ext.PagingToolbar`:分页...
在实际应用中,可能还需要处理一些特殊需求,如控制单元格是否可编辑。这可以通过监听`beforeedit`事件来实现,根据业务逻辑判断是否允许编辑: ```javascript grid.on('beforeedit', function(editor, e) { if ...
- **编辑网格面板**:进一步探讨了`EditorGridPanel`,这是一种可以编辑表格数据的增强型网格面板。 - **数据视图和列表视图**:介绍了`DataView`和`ListView`组件,它们适用于显示大量数据。 - **图表组件**:讲解...
1. **EXTJS组件**:EXTJS的核心是它的组件模型,包括GridPanel、TreePanel、PropertyGrid、EditorGridPanel、TabPanel、FormPanel、Panel、Window、ToolTip和FieldSet等。这些组件可以组合起来创建复杂的用户界面,...
**八、可编辑表格EditorGridPanel** `EditorGridPanel`是GridPanel的一个扩展,它允许用户直接在表格单元格内编辑数据。这对于数据录入和管理非常有用,可以结合各种编辑器实现复杂的数据输入需求。 **九、Ext类库...
对于大多数Web应用程序而言,这种功能几乎是不可或缺的。下面我们将详细介绍如何使用ExtJS来实现这些功能。 #### 二、创建Grid的基本结构 创建Grid通常涉及到三个主要部分:`Store`、`ColumnModel`和`GridPanel`。...
11. **`editorgrid`** - `Ext.grid.EditorGridPanel`,可编辑的表格组件,允许用户直接在表格中编辑数据。 12. **`propertygrid`** - `Ext.grid.PropertyGrid`,属性表格组件,用于展示对象的属性。 13. **`...
- `editorgrid`: `Ext.grid.EditorGridPanel` — 可编辑的表格。 - `grid`: `Ext.grid.GridPanel` — 表格。 - `panel`: `Ext.Panel` — 面板。 - `progressbar`: `Ext.ProgressBar` — 进度条。 - `splitbutton`: `...
#### 7.2 可编辑的表格EditorGridPanel EditorGridPanel是一种特殊的GridPanel,它允许用户直接在表格中编辑数据。这对于需要频繁更新数据的应用来说非常方便。 #### 7.3 与服务器交互 ExtJS提供了强大的数据处理...
- 第三部分介绍数据驱动的组件,如网格面板(GridPanel)、编辑器网格面板(EditorGridPanel)、数据视图和列表视图(DataView和ListView)、图表(Charts)、树形结构(trees)以及菜单、按钮和工具栏(Menus, ...
#### 可编辑的表格 `EditorGridPanel` ##### 1.2 可编辑的表格 `EditorGridPannel` `EditorGridPanel` 继承自 `GridPanel`,主要特点在于提供了单元格级别的编辑功能。 **配置参数详解**: - **`editEvent`**: ...
11. **`editorgrid`:** 可编辑的表格组件,允许用户直接在表格中编辑数据,通过`Ext.grid.EditorGridPanel`类实现。 12. **`propertygrid`:** 属性表格组件,用于展示对象的属性列表,通过`Ext.grid.PropertyGrid`...
- 配置Grid面板,定义列模型,设置列的宽度、对齐方式、可编辑性等属性。 - 添加EditorGridPanel,允许在Grid中直接编辑单元格数据。 - 实现Model和Proxy,Model定义数据字段,Proxy配置数据源,如JsonP或Restful...
- **可编辑的表格(EditorGridPanel)**: - 在表格的基础上增加了编辑功能,用户可以直接修改数据。 #### 七、与服务器交互 - **数据存储(Store)**: - 存储和管理数据集,支持本地数据和远程数据加载。 - **...
- **`editorgrid` (Ext.grid.EditorGridPanel)**: 可编辑的表格组件,允许用户直接在表格内进行数据编辑。 - **`propertygrid` (Ext.grid.PropertyGrid)**: 属性表格组件,专门用于展示对象的属性。 - **`editor` ...