//创建edgrid.js
Ext.onReady(function(){
Ext.QuickTips.init();
// 格式化日期显示
function formatDate(value){
return value ? value.dateFormat('Y, M d') : '';
}
// 格式化性别显示,这是个 renderer, 渲染器
function formatSex(value) {
return value ? "男" : "女"
}
// 弄个缩写的别名
var fm = Ext.form;
// 列模型定义了表格所有列的信息,
// dataIndex 将特定的列映射到数据源(Data Store)中的数据列(在后面创建)
var cm = new Ext.grid.ColumnModel([
{
id:'id',
header: "编号",
dataIndex: 'id',
width: 50
},
{
id:'name',
header: "用户名",
dataIndex: 'name',
width: 250,
editor: new fm.TextField({
allowBlank: false// 不能为空
})
},
{
header: "地区",
dataIndex: 'area',
width: 100,
editor: new Ext.form.ComboBox({
typeAhead: true,
triggerAction: 'all',
transform:'area',// 对应的选择框的ID
lazyRender:true,
listClass: 'x-combo-list-small'
})
},
{
header: "电子邮件",
dataIndex: 'email',
width: 220,
align: 'left',
editor: new fm.TextField({
allowBlank: true
})
},
{
header: "年龄",
dataIndex: 'age',
width: 70,
align: 'right',
editor: new fm.NumberField({
allowBlank: true,
allowNegative: false,
maxValue: 100
})
},
{
header: "生日",
dataIndex: 'birthDay',
width: 95,
renderer: formatDate,
editor: new fm.DateField({
format: 'y/m/d',
minValue: '1970/01/01',//最小值
disabledDays: [0, 6],// 禁止选择的日期
disabledDaysText: '不许周末出生孩子'
})
},
{
header: "性别",
dataIndex: 'sex',
width: 95,
renderer: formatSex,
editor: new fm.Checkbox()
}
]);
// 默认情况下列是可排序的
cm.defaultSortable = true;
// 定义一个用户对象,这样便于我们动态的添加记录,虽然也可以设置成匿名内置对象
var User = Ext.data.Record.create([
// 下面的 "name" 匹配读到的标签名称, 除了 "birthDay",它被映射到标签 "birth"
{name: 'id', type: 'int' },
{name: 'name', type: 'string'},
{name: 'area'},
{name: 'email', type: 'string'},
{name: 'age', type: 'int'}, // automatic date conversions
{name: 'birthDay', mapping: 'birth', type: 'date', dateFormat: 'Y/m/d'},
{name: 'sex', type: 'bool'}
]);
// 创建 Data Store
var store = new Ext.data.Store({
// 使用 HTTP 加载
url: 'users.xml',
// 因为返回值是 XML, 所以我们创建一个解析器
reader: new Ext.data.XmlReader({
// 记录必须包含 "user" 标签
record: 'user'
}, User),
sortInfo:{field:'name', direction:'ASC'}// 排序信息
});
// 创建编辑器表格
var grid = new Ext.grid.EditorGridPanel({
store: store,
cm: cm,
renderTo: 'editor-grid',
width:800,
height:300,
autoExpandColumn:'name',
title:'功能管理',// 标题
frame:true,
clicksToEdit:1,//设置点击几次才可编辑
selModel: new Ext.grid.RowSelectionModel({singleSelect:false}),//设置单行选中模式, 否则将无法删除数据
// 顶部工具栏按钮
tbar: [
{
text: '新增',
iconCls:'xz',//按钮图标的CSS名称
handler : function(){// 点击按钮执行的操作
var n = grid.getStore().getCount();// 获得总行数
var p = new User({
id: n + 1,
name: '新数据' + n,
area: '',
email: 'Benson@163.com',
age: 20,
birthDay: (new Date()).clearTime(),
sex: true
});
grid.stopEditing();// 停止编辑
store.insert(n, p);// 插入到最后一行
grid.startEditing(n, 1);// 开始编辑1单元格
}
},
{
text: '删除',
iconCls:'sc01',
handler : function(){
//var record = grid.getSelectionModel().getSelected();// 返回值为 Record 类型
var rows = grid.getSelectionModel().getSelections();// 返回值为 Record 数组
if(rows.length==0){
Ext.MessageBox.alert('警告', '最少选择一条信息,进行删除!');
}else{
Ext.MessageBox.confirm('提示框', '您确定要进行该操作?',function(btn){
if(btn=='yes'){
if(rows){
for (var i = 0; i < rows.length; i++) {
//alert(rows[i].get("id"));
store.remove(rows[i]);
//store.removeAll(); //删除所有数据
}
this.getEl().dom.action='./formservlet?operator=save';
this.getEl().dom.submit();
}
}
});
} // 弹出对话框警告
}
},
{
text: '保存',
iconCls: 'bc',
handler : function(){
var recordtoedit = grid.getSelectionModel().getSelected();// 返回值为 Record 类型
if(recordtoedit) {
Ext.Msg.alert('查看选中', "您现在选中的用户其名字为:" + recordtoedit.get("name"));// 取得用户名
// alert("您现在选中的用户其名字为:" + recordtoedit.get("name"));
}
}
},
{
text: '查询',
iconCls: 'cx',
handler : function(){
}
}
]
});
// 单元格编辑后事件处理
grid.on("afteredit", afterEdit, grid);
// 事件处理函数
function afterEdit(e) {
var record = e.record;// 被编辑的记录
// 显示等待对话框
Ext.Msg.wait("请等候", "修改中", "操作进行中...");
// 更新界面, 来真正删除数据
Ext.Msg.alert('您成功修改了用户信息', "被修改的用户是:" + e.record.get("name").value + "\n 修改的字段是:"
+ e.field);// 取得用户名
};
// 触发数据加载
store.load();
});
//创建edgrid.jsp
<%@page contentType="text;html; charset=GBK"%>
<%@page import="com.luke.hm.tree.EJBContext"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB2312">
<title>表格编辑器示例</title>
<link rel="stylesheet" type="text/css" href="<%= EJBContext.getRootPath()%>/ext/resources/css/ext-all.css" />
<!-- 图标样式 CSS 信息 -->
<link rel="stylesheet" type="text/css" href="<%= EJBContext.getRootPath()%>/menujscss/edgrid.css" />
<!-- GC -->
<!-- LIBS -->
<script type="text/javascript" src="<%= EJBContext.getRootPath()%>/ext/adapter/ext/ext-base.js"></script>
<!-- ENDLIBS -->
<script type="text/javascript" src="<%= EJBContext.getRootPath()%>/ext/ext-all.js"></script>
<!-- 中文提示信息支持 -->
<script type="text/javascript" src="<%= EJBContext.getRootPath()%>/ext/source/locale/ext-lang-zh_CN.js"></script>
<!-- 本页的功能代码 -->
<script type="text/javascript" src="edgrid.js"></script>
<!-- DWR JavaScript 类库 -->
<!--script type='text/javascript' src='/dwrtest/dwr/interface/JUserManager.js'></script-->
<!--script type='text/javascript' src='/dwrtest/dwr/engine.js'></script-->
</head>
<body>
<h1>
<select name="area" id="area" style="display: none;">
<option value="历城区">历城区</option>
<option value="历下区">历下区</option>
<option value="槐荫区">槐荫区</option>
</select>
<!-- 放置可编辑控件的 DIV -->
</h1>
<div id="editor-grid"></div>
</body>
</html>
//创建users.xml
<?xml version="1.0" encoding="GBK"?>
<users>
<user>
<id>1</id>
<name>XXX1</name>
<area>XXX2</area>
<email>XXX1@126.com</email>
<age>88</age>
<sex>true</sex>
<birth>1980/01/01</birth>
</user>
<user>
<id>2</id>
<name>Benson</name>
<area>山东济南</area>
<email>Benson@163.com</email>
<age>27</age>
<sex>true</sex>
<birth>1982/12/12</birth>
</user>
<user>
<id>3</id>
<name>Benson_GG</name>
<area>济南历下</area>
<email>aa@bb.com</email>
<age>28</age>
<sex>false</sex>
<birth>1982/12/11</birth>
</user>
</users>
//创建edgrid.css
/** 定义了一些工具栏按钮的 CSS 样式 */
.xz {
background-image:url(./xz.gif) !important;
}
.sc01 {
background-image:url(./sc.gif) !important;
}
.sc02 {
background-image:url(./sc.gif) !important;
}
.cx {
background-image:url(./cx.gif) !important;
}
.bc {
background-image:url(./bc.gif) !important;
}
分享到:
相关推荐
当与ExtJS结合时,后端可以负责处理数据操作,如CRUD(创建、读取、更新、删除)操作,而前端则由ExtJS负责,提供用户界面和交互体验。例如,可以使用ExtJS的Grid Panel展示来自ASP.NET的数据,使用Form Panel进行...
本资源"ExtJs_ASPMVC_Batch_Operation.rar"正是这样一个实例,它展示了如何利用ExtJS的Grid组件与ASP.NET MVC框架实现批量操作,包括数据展示、添加、修改、删除以及导入导出Excel功能。 首先,ExtJS是一个...
增删改操作通常通过Controller来处理,Controller监听编辑事件,调用Store的方法进行数据的添加、删除或修改,并同步到服务器。 6. **MVCTest**: "MVCTest"可能是这个例子中的一个子目录或文件,可能包含了MVC...
餐馆管理模块是系统的基础,包括了餐馆信息的录入、修改、删除和查询功能。EXTJS的Grid Panel可以用于展示餐馆列表,而Form Panel则用于编辑餐馆详情。此外,EXTJS的数据绑定机制允许数据与UI实时同步,简化了前后端...
这里我们关注的是如何在SSH框架下,结合ExtJS 4.0版本的Grid组件实现数据的删除操作。 首先,让我们理解SSH框架。Spring提供了依赖注入和事务管理,Struts处理MVC(模型-视图-控制器)架构,而Hibernate则作为ORM...
综上所述,"ssh+extjs4.0grid增删改查"是一个涵盖了Java Web开发多个层面的主题,包括后端的SSH框架整合和数据库操作,以及前端的JavaScript客户端应用开发。通过这种方式,可以构建出一个完整的、具有动态数据展示...
7. **增删改查操作**:Grid不仅用于数据展示,还支持对数据的添加、删除、修改和查询操作。这些功能可以通过集成FormPanel,提供编辑窗口,或者在Grid内直接进行单元格编辑来实现。 8. **WCF服务**:WCF(Windows ...
首先,ExtJS4是一个强大的JavaScript框架,它提供了丰富的组件库,包括Grid组件,用于展示和操作表格数据。Grid允许用户以表格形式查看、编辑和管理数据,非常适合于数据密集型应用。在ExtJS4中,我们首先需要创建一...
在本文中,我们将深入探讨如何在ExtJS 4框架中实现Grid组件的修改和删除功能,同时结合Struts2和Hibernate技术,构建一个完整的CRUD(创建、读取、更新、删除)应用。ExtJS 4是一个强大的JavaScript UI库,提供了...
本文将详细介绍如何在ExtJS中实现grid多行数据的全部删除功能。 #### 一、理解ExtJS中的Grid组件 在开始之前,我们需要先了解ExtJS中的Grid组件。Grid是ExtJS中最常用的组件之一,用于展示和编辑表格形式的数据。...
这个压缩包文件"Extjs4.0.2a grid 增删改查"很可能是包含了一组示例代码和资源,用于演示如何在ExtJS 4.0中实现Grid组件的增删改查功能,以及搜索关键字、多条删除和批量更改等操作。 首先,让我们详细了解一下Grid...
在ExtJS中,CRUD操作是通过Grid Panel、Form Panels等组件实现的,这通常涉及到模型(Model)、存储(Store)和控制器(Controller)的协同工作。 本示例是关于如何在ExtJS中实现CRUD操作的一个教程。首先,我们从...
实现treegrid组件的(CRUD)读取、新增、修改、删除 //设置grid单元格处于编辑状态 selcell:function(arow,acol){ this.editingPlugin.startEditByPosition({row:arow,column:acol}); }, selcell2:function(node,...
在本示例中,我们将深入探讨如何使用ExtJS实现动态加载grid,同时实现CRUD(创建、读取、更新、删除)操作和分页功能。 首先,让我们了解什么是Grid。在ExtJS中,Grid是一种数据网格组件,用于展示大量结构化数据。...
在“extjs3.0 新增\删除\修改\查询 mysql数据库 实例”中,我们将探讨如何利用ExtJS 3.0与MySQL数据库进行数据的CRUD(创建、读取、更新、删除)操作。 首先,我们要了解ExtJS中的数据模型。在ExtJS中,数据模型...
当用户对数据进行修改(如编辑或删除)后,系统需要保持用户在当前页浏览的状态,即在操作成功后刷新数据但不改变页面位置。 关键知识点包括: 1. **数据存储(Data Store)**:`Ext.data.Store` 是EXTJS中用来...
`extJs 常用到的增,删,改,查操作代码_extjs_脚本之家.mht`是一个单一网页档案(MHT)文件,可能包含了详细的代码示例和解释,关于如何在ExtJS中执行增删改查操作。 总结,ExtJS表格提供了强大的数据管理功能,...
4. **同步数据**:删除操作后,需要调用`store.sync()`来将更改同步到服务器。如果数据源是异步的,这一步是必要的。 5. **更新UI**:最后,使用`store.load()`或`store.refresh()`来刷新Grid,使用户界面反映最新...