Ext.data.Store是extjs的数据结构。
主要用于extjs的grid和combobox等控件的数据加载和操作。实际上对grid的增删改可以通过对store的操作来控制.
例子:对grid的增删操作
A.增加一条记录
1. 首先需要定义每条record的结构,这点很重要,方便后面对记录的操作。也是很好的编程习惯
machine_record = Ext.data.Record.create([{
name : 'id',
type : 'int'
}, {
name : 'ip',
type : 'string'
}, {
name : 'env',
type : 'string'
}, {
name : 'owner',
type : 'string'
}, {
name : 'memer',
type : 'string'
}, {
name : 'cpu',
type : 'string'
}, {
name : 'disk',
type : 'string'
}, {
name : 'type',
type : 'string'
}]);
2. 定义data.store本身,说明使用的是machine_record结构,同时声明从服务器后台那个serverlet取得数据
//{"root":[{"start":0,"limit":0,"cpu":"23","memer":"2","disk":"dffe","ip":"10.250.194347","env":"0","id":1,"type":"2","owner":"elbert"},{"start":0,"limit":0,"cpu":"er","memer":"er","disk":"re","ip":"sdf","env":"er","id":12,"type":"虚拟机","owner":"re"},{"start":0,"limit":0,"cpu":"34","memer":"4","disk":"34","ip":"23","env":"34","id":18,"type":"虚拟机","owner":"34"},{"start":0,"limit":0,"cpu":"1g","memer":"2g","disk":"10g","ip":"10.250.194.47","env":"旺旺服务器端测试1","id":19,"type":"虚拟机","owner":"陈洪"}],"totalCount":10}
以上是例子取得的数据源
machine_list_grid_store = new Ext.data.Store({
proxy : new Ext.data.HttpProxy({
url : 'GetMachineList', //说明后台的serverlet
method : 'POST'
}),
reader : new Ext.data.JsonReader({
root : "root",
id : 'machine_list_grid_store',
totalProperty : 'totalCount'
}, machine_record) //说明数据结构
});
3.grid控件绑定该data.store
var machine_list_grid = new Ext.grid.GridPanel({
store : machine_list_grid_store, //关键代码
animate : true,
columnLines : true,
region : 'south',
height : Glb.outer_center.getHeight() * 0.6,
tbar : [p_buttons],
split : true,
columns : [{
id : 'id',
header : "id",
width : 60,
sortable : true,
dataIndex : 'id'
}, {
id : 'ip',
header : "机器ip",
width : 120,
sortable : true,
dataIndex : 'ip'
}, {
id : 'cpu',
header : "cpu",
width : 80,
sortable : true,
dataIndex : 'cpu'
}, {
id : 'memer',
header : "内存",
width : 80,
sortable : true,
dataIndex : 'memer',
hidden : true
}, {
id : 'disk',
header : "硬盘",
width : 80,
sortable : true,
dataIndex : 'disk'
}, {
id : 'env',
header : "环境",
width : 120,
sortable : true,
dataIndex : 'env'
}, {
id : 'owner',
header : "归属人",
width : 120,
sortable : true,
dataIndex : 'owner'
}, {
id : 'type',
header : "类型",
width : 80,
sortable : true,
dataIndex : 'type'
}],
region : 'south',
bbar : new Ext.PagingToolbar({
pageSize : 10,
store : machine_list_grid_store,
displayInfo : true,
displayMsg : '显示 {0} - {1} /共 {2}条记录',
emptyMsg : "没有记录"
})
});
4.对data.store进行新增记录操作,由于定义了record的结构,所以很方便的进行new,并进行add record的操作,这时候grid也会自然添加一条记录
function insert_machine_grid_row(id, ip, env, owner, memer, cpu, disk, type) {
var record = new machine_record({
id : id,
ip : ip,
env : env,
owner : owner,
memer : memer,
cpu : cpu,
disk : disk,
type : type
});
machine_list_grid_store.add(record);
}
B.删除一条记录
1.首先要取得记录的index,可以通过grid的click事件取得,那么就要实现添加click事件
machine_list_grid.addListener('rowclick', machine_list_grid_rowclick);
function machine_list_grid_rowclick(grid, rowIndex, columnIndex, e) {
g_machine_rowIndex = rowIndex;
}
2. 取得选中的record,代码如下
var x = machine_list_grid_store.getAt(g_machine_rowIndex);
3. 直接删除记录
machine_list_grid_store.remove(x);
4.第三步也可以通过后台先删除数据库数据,然后machine_list_grid_store.reload()的方式来变更grid的显示效果。
分享到:
相关推荐
store: Ext.create('Ext.data.Store', { fields: ['name', 'value'], proxy: { type: 'ajax', url: 'data.json', // 本地数据文件路径 reader: { type: 'json', rootProperty: 'items' } }, autoLoad: ...
### ExtJs选中 `var editor = new Ext.ux.grid.RowEditor` 详解 在Web开发领域,特别是使用ExtJs框架进行复杂用户界面构建时,`RowEditor` 是一个非常实用的功能,它允许用户直接在表格行内编辑数据,极大地提高了...
var grid = Ext.create('Ext.grid.Panel',{ title:'ArrayGrid', store:store, ... }); ``` 创建了一个`Ext.grid.Panel`实例,并指定了其标题和数据源。 5. **选择模型**: ```javascript selModel:{ type...
`Ext.grid.GridPanel`是ExtJS中用于展示表格数据的核心组件之一。它提供了丰富的配置选项和方法来帮助开发者灵活地控制表格的表现形式及功能。对于初学者或者希望深入理解`GridPanel`特性的Web开发人员来说,掌握其...
1.使用ExtJS6.5.0+SSM 2.实现Grid表格的增删改查和分页,数据库使用的是MySql, 3.项目代码和数据脚本齐全 4.Jar齐全,加载即可运行 5.VX:humingxing可随时交流
grid.store = store; ``` 这里创建了一个JsonStore,指定数据来源URL和数据结构。`root`属性指定了JSON数据中包含记录的数组字段,`fields`定义了数据字段名。加载数据后,将其赋值给GridPanel的`store`属性,使数据...
ExtJs 提供了多种组件用于实现增删改查的交互,如`Ext.form.Panel`用于创建表单,`Ext.grid.Panel`用于显示和编辑表格数据,以及`Ext.toolbar.Toolbar`用于添加操作按钮如“新增”、“编辑”、“删除”。...
在ExtJS框架中,Grid是一个非常关键的组件,主要用于展示表格数据,并支持数据的增删改查等基本操作。对于大多数Web应用程序而言,这种功能几乎是不可或缺的。下面我们将详细介绍如何使用ExtJS来实现这些功能。 ###...
在“简单的增删改查”这个主题中,我们将探讨如何使用ExtJS实现数据管理的基本操作,包括添加(Add)、删除(Delete)、修改(Update)和查询(Query)。 首先,我们需要了解ExtJS的核心概念,如组件(Components)...
var grid = new Ext.grid.GridPanel({ store: store, columns: [...], // 定义列 ... }); var toolbar = new Ext.toolbar.Paging({ store: store }); grid.addDocked(toolbar); grid.render('gridDiv'); ``` ...
9.5.2 Ext.grid.GroupingView的配置操作 9.6 可拖放的表格 9.6.1 拖放改变表格的大小 9.6.2 在同一个表格里拖放 9.6.3 表格之间的拖放 9.6.4 表格与树之间的拖放 第10章 设计树状结构布局 10.1 TreePanel的...
var reportStore = new Ext.data.Store({ proxy: reportProxy, reader: reportReader, listeners: { beforeload: function () { msgTip = Ext.MessageBox.show({ title: '提示', width: 250, msg: '正在加载...
var cm = new Ext.grid.ColumnModel([ {header: 'ID', dataIndex: 'id'}, {header: '性别', dataIndex: 'sex'}, {header: '姓名', dataIndex: 'name'}, {header: '描述', dataIndex: 'descn'} ]); ``` 其中,`...
ExtJs提供了`Ext.util.CSS`类来操作CSS。遍历Grid的所有Column,根据Column的配置项,如`width`、`align`、`renderer`等,构建对应的CSS规则。 3. **表格构建**:使用JavaScript创建一个新的HTML `<table>`元素,并...
var grid = Ext.create('Ext.grid.Panel', { store: store, columns: columns, renderTo: Ext.getBody() // 渲染到页面 }); ``` 接下来,我们需要为GridPanel添加双击事件监听器。在ExtJs中,我们可以使用`...
9.5.2 Ext.grid.GroupingView的配置操作 9.6 可拖放的表格 9.6.1 拖放改变表格的大小 9.6.2 在同一个表格里拖放 9.6.3 表格之间的拖放 9.6.4 表格与树之间的拖放 第10章 设计树状结构布局 10.1 TreePanel的...
1. **数据网格(Data Grid)**:ExtJs的数据网格是一种显示大量结构化数据的组件,它支持分页、排序、筛选等多种功能。数据网格通过绑定到数据源(如Store)来显示数据,并且可以对每列应用不同的渲染和操作。 2. *...
1、Ext类 ………………………………… 2 2、Array类 …………………………… 4 3、Number类 …………………………… 4 4、...73、Ext.grid.EditorGridPanel类 ……… 62 74、Ext.grid.PropertyGrid类 …………… 65
Ext.ux.PostStore = Ext.extend(Ext.data.Store, { constructor: function(params) { // ... } }); Ext.reg('PostStore', Ext.ux.PostStore); ``` 而在 ExtJS4 中,我们需要使用以下代码来定义一个类: ```...
var cmFatList = new Ext.grid.ColumnModel([ sm, // CheckboxSelectionModel { header: "ID", dataIndex: 'uid' }, { header: "Username", dataIndex: 'userName' }, { header: "Email", dataIndex: '...