Ext - Grid
Grid是Ext框架中一个重要的组成部分。一般建立Grid主要实现数据的增删改查。
建立一个Grid
Grid一般有三个主要的内容,ds,cm,GridPanel
var ds = new Ext.data.Store();
var cm = new Ext.grid.ColumnModel();
var grid = new Ext.grid.GridPanel();
如果要页面载入时,Grid不显示,事件触发查询并建立Grid显示。 很简单,将GridPanel建立在事件的function中就可以了。
如果载入时就显示Grid,这里分几种情况:
(1)页面载入时,Grid显示,并查询和显示出数据。
(2)页面载入时,Grid显示,但不发送请求数据,事件触发查询。该查询条件已固定或不需要条件。
(3)页面载入时,Grid显示,不查询数据,事件触发查询,该查询需要从页面上存在的文本框中获得数据作为条件。
(4)与(3)相同,但是希望在Grid查询过程中有loadMask效果。
对于1)
直接在Ext.onReady()中建立GridPanel,并且ds调用load方法。
对于2)
在Ext.onReady()中建立GridPanel,而在事件的function中写ds.load()
对于3)
在Ext.onReady()中建立GridPanel,而此时的ds为一个假ds,它的作用仅仅是为了能够在页面载入时就显示Grid,而在事件的function中
则再建立一个带有查询条件的ds,然后用该ds重新配置Grid.grid.reconfigure(ds,cm);
对于4)
查询的要求可由grid被新的ds重新配置的方法实现,但是会发现,这样做时,Grid的loadMask效果也不会出现了。有一个方法,就是在事件的
function中,将Grid的render的div清空,即div.innerHTML="" 之后再重新建立一个Grid。这样做的缺点就是会在有很多代码重复。
可能还会出现一些其他的function的调用以及无法取得某对象的问题。
以下由第三种情况为例,来说明增删改查。
建立:
var fds = new Ext.data.Store();
var cm = new Ext.grid.ColumnModel([
{header:'例子',width:100,dataIndex:'test',
editor:new Ext.form.TextField({
id:'test'
})
}
]);
var sm = new Ext.grid.RowSelectionModel();
var grid = new Ext.grid.EditorGridPanel({
ds:fds,
cm:cm,
sm:sm,
width:200,
height:200,
title:'举例',
renderTo:Ext.get("testdiv")
});
这里建立EditorGridPanel,是可以进行编辑的Grid.
1 查询:(点击按钮触发事件)
function btnclick()
{
var Record = Ext.data.Record.create([
{name:'test'}
]); //此处将record单独提出方便操作
var ds = new Ext.data.Store({
url:'访问的地址',
reader:new Ext.data.XmlReader({
record:'item'
},Record)
});
ds.load();
grid.reconfigure(ds,cm);
}
2 添加
新建一条数据
var r = new Record({
test:'随便举个例子'
});
插入到表格指定行,n为要插到这行后(此处取了表格的行数,即插入到最后),m是编辑完毕后focus的位置列数
var n = grid.getStore().getCount();
grid.stopEditing();
grid.getStore().insert(n,r);
grid.startEditing(n,m);
3 删除
删除选定的行
var r = grid.getSelectionModel().getSelected();
ds.remove(r);
删除多行,也一样,用getSelections()反法取到选中的行的一个数组,然后再一一删除。
删除所有行
ds.removeAll();
4 修改
两种方法,一种直接手动点击需要修改的单元格,EditorGridPanell中的ClicksToEdit来设置点击几下进入编辑状态。
还有一种从别处获得数据自动修改。
假设一条新的数据,
var nr = ['修改后的例子'];
选定你要修改的行
var recordtoedit = grid.getSelectionModel().getSelected();
或者var recordtoedit = ds.getAt(rowIndex);
recordtoedit.set('test','修改后的例子');
还可以在修改完毕后将修改过的行的颜色改变来标示出哪一条是修改过的。
添加事件
grid.on('afteredit',function(e){
var rowIndex = e.row;
grid.getView().getRow(rowIndex).style.backgroundColor="red";
//可以增加透明度效果
grid.getView().getRow(number).style.filter = "alpha(opacity=50)";
grid.getView().getRow(number).style.MozOpacity =".5";
});
分享到:
相关推荐
在这个"EXTJS4+STRUTS2+JAVA增删改查"的例子中,我们将深入探讨这三个技术如何协同工作,实现数据的动态管理。 EXTJS4是一个强大的JavaScript库,主要用于创建桌面级的Web应用程序。它提供了丰富的组件库,如表格、...
在这个项目中,“WPF实现简单增删改查”是一个基础教程,它展示了如何利用WPF技术创建一个基本的数据管理应用。这个应用的核心功能包括对数据的插入、删除、修改和查询,对于初学者来说,这是一个很好的起点,因为它...
在“简单的增删改查”这个主题中,我们将探讨如何使用ExtJS实现数据管理的基本操作,包括添加(Add)、删除(Delete)、修改(Update)和查询(Query)。 首先,我们需要了解ExtJS的核心概念,如组件(Components)...
在Bootstrap中,表格设计简洁,适应性强,尤其适合在网页上实现数据的增删改查功能。Bootstrap表格通常结合JavaScript库如jQuery和相关的插件(如jqGrid)来增强交互性,提供分页、搜索、排序等高级功能。 ...
描述中进一步明确了本文档的知识点范围,主要介绍如何通过jQuery和datatables插件实现数据的增删改查功能,并且特别强调了与页面表格相关的操作技巧。这些技巧可能包括表格初始化设置、事件监听、数据请求的配置和...
根据题目给出的信息,本文主要围绕Extjs中的表格组件(Grid)展开,介绍如何通过Grid实现对数据的增删改查功能。下面将分别针对各个功能点进行深入探讨。 #### 三、Extjs Grid组件配置详解 1. **初始化配置** - `...
ExtJS4和Struts2.1是两种不同...通过理解Grid组件、Store、Model和Action的交互,开发者可以创建出功能完备的前端界面,并与后台无缝对接,实现数据的增删改查功能。希望这个概述能帮助你更好地理解和应用这两种技术。
在"EXT 增删改查的一个例子"中,我们主要关注的是EXT在数据管理和用户交互方面的应用。增删改查(CRUD)是任何数据驱动应用的基础操作,包括创建(Create)、读取(Read)、更新(Update)和删除(Delete)。EXT提供...
在ExtJS框架中,Grid是一个非常关键的组件,主要用于展示表格数据,并支持数据的增删改查等基本操作。对于大多数Web应用程序而言,这种功能几乎是不可或缺的。下面我们将详细介绍如何使用ExtJS来实现这些功能。 ###...
- **Grid Panel**:在实现增删改查功能时,ExtJS的Grid Panel是核心组件,用于显示和编辑表格数据。它支持分页、排序、过滤和列宽调整等特性。 - **Form Panel**:用于创建和编辑记录,通常包含各种输入字段如...
总之,"operamasks整合spring、hibernate实现grid增删改查"是一个完整的Web应用开发案例,涵盖了前端展示、后端服务和数据持久化等多个层面,对于学习和理解Java Web开发具有很高的价值。通过深入理解并掌握这些技术...
【描述】中的"一个简单的easyui+ssh增删改查"意味着,这个项目提供了一个基本的示例,演示如何在Web应用中整合EasyUI和SSH来实现数据操作。对于初学者来说,这样的项目是一个很好的起点,因为它涵盖了Web开发的核心...
本教程将向初级开发者介绍如何在WPF应用中执行基本的数据库操作,包括增、删、改、查(CRUD)操作。我们将使用C#语言以及SQL Server数据库。 首先,你需要安装SQL Server Express或LocalDB作为数据库服务器,并创建...
"ext增删改查.rar" 文件可能包含了EXTJS 进行数据操作的具体代码示例,包括Model、Store、Proxy 的配置以及如何触发增删改查操作的代码片段。解压并研究这些文件可以帮助理解EXTJS 与MySQL 数据库的交互过程。 8. ...
本项目“flex+java实现增删改查Dome”是一个基于Flex前端和Java后端的示例,用于演示如何实现数据的CRUD(Create、Read、Update、Delete)操作。下面将详细介绍Flex与Java的集成以及在这个Dome中的具体应用。 Flex...
在与数据库进行交互时,ExtJS 通常结合服务器端的技术,如PHP、Java、ASP.NET等,实现数据的增删改查操作。下面我们将详细探讨这个主题。 一、ExtJS 数据模型(Model) 在ExtJS中,数据模型(Model)是表示应用...
综上所述,“WPF增删改查源码生成器”是一个强大的开发辅助工具,它利用MVVM模式简化了WPF应用的开发,涵盖了基本的数据操作和数据导出功能,同时兼容多种数据库系统和控件库。对于需要快速搭建数据驱动的WPF应用的...
标题“operamasks2.1整合spring、hebernate实现grid增删改查”涉及到的是一个Web开发项目,其中使用了OperaMasks 2.1、Spring和Hibernate三大技术框架来构建一个具备数据操作功能(CRUD:创建、读取、更新、删除)的...
在实现增删改查功能时,我们需要利用Liger UI中的Grid组件。Grid组件可以用来展示并操作大量数据,同时支持分页、排序、过滤等功能。通过与Java后台进行数据交互,我们可以实现在前端界面上对数据进行添加、删除、...
- 安全性:确保所有的增删改查操作都经过验证和授权,防止非法数据操作。 - 性能优化:考虑使用分页、懒加载等策略,减少一次性加载大量数据带来的性能问题。 - 错误处理:提供良好的错误提示和异常处理机制,...