如果我的博文能帮到你,我感到非常荣幸。能力所限,对于我所写的内容如有不详不对,你们能给一些意见的话我将非常感谢。以后我会将我在工作中学到的一些知识,尽量整理出来给大家分享。 你们的意见是我的动力
效果图:
第一步:创建数据源,本例使用的是远程请求数据,当然你可以使用静态的数据(不过在实际的应用中通常都是通过url请求出JSON数据的)。
url: 'general/appNormal/gList/list_product'是从java后台请求出store数据。
返回的内容格式为var storeJSON=[{id:'1001',p_name:'测试信息一',p_number:'100'},{id:'1002',p_name:'测试信息二',p_number:'101'},{id:'1003',p_name:'测试信息三',p_number:'102'}]
store.load({params:{start : 0,limit : 20}});//带参数的手动加载数据,方法
pageSize : 20 //每页显示20条记录。
var store = Ext.create('Ext.data.Store', {
storeId:'simpsonsStore',
pageSize : 20,
proxy: {
type: 'ajax',
url: 'general/appNormal/gList/list_product',
reader: {
type: 'json',
root: 'list',
totalProperty : 'totalCount',
idProperty: '0'
}
},
fields : ['id','p_name','p_number'],
autoLoad: false//自动加载数据开关
});
//手动加载数据,start:0,limit:20为分页参数
store.load({
params : {
start : 0,
limit : 20
}
});
第二步:创建new Ext.grid.Panel,grid中2个地方会用到store,一个用于显示的数据,另一个是用于分页的。
columns:为显示列,如果想隐藏一列,可添加hidden:true,例:{header:'ID',dataIndex:'id',flex:1,hidden:true}。
var grid = new Ext.grid.Panel({
store : store,
columns : [{header:'编号',xtype:'rownumberer',align:'left',width:40},{header:'ID',dataIndex:'id',flex:1},{header:'p_name',dataIndex:'p_name',flex:1},{header:'p_number',dataIndex:'p_number',flex:1}],
loadMask: true,
border: true,
layout : 'fit',
minHeight: 400,
viewConfig : {
forceFit : true
},
stripeRows : true,
tbar : [{
text : '新增',
handler : function(btn) {
showNewWin();
}
},{
xtype : 'tbseparator'
},{
text : '刷新',
handler : function(btn) {
// 数据重新载入
store.reload();
}
}],
bbar:new Ext.PagingToolbar({
store : store,
displayInfo : true,
displayMsg : '当前 {0} - {1}条,共 {2}条',
emptyMsg : "No topics to display"
})
});
第三步: 显示这个页面
var viewPort = new Ext.Viewport({
layout : 'fit',//自适应布局方式
items : [grid]
});
gridPanel完整代码:
Ext.onReady(function() {
Ext.QuickTips.init();
var store = Ext.create('Ext.data.Store', {
storeId:'simpsonsStore',
pageSize : 20,
proxy: {
type: 'ajax',
url: 'general/product/list',
reader: {
type: 'json',
root: 'list',
totalProperty : 'totalCount',
idProperty: '0'
}
},
fields : ['id','p_name','p_number'],
autoLoad: false
});
store.load({
params : {
start : 0,
limit : 20
}
});
// create the Grid
var grid = new Ext.grid.Panel({
store : store,
columns : [{header:'编号',xtype:'rownumberer',align:'left',width:40},{header:'ID',dataIndex:'id',flex:1},{header:'p_name',dataIndex:'p_name',flex:1},{header:'p_number',dataIndex:'p_number',flex:1}],
loadMask: true,
border: true,
layout : 'fit',
minHeight: 400,
viewConfig : {
forceFit : true
},
stripeRows : true,
tbar : [{
text : '新增',
handler : function(btn){
//打开新增按钮
}
},{
xtype : 'tbseparator'
},{
text : '修改',
handler : function(btn){
var data = grid.getSelectionModel().selected;
if (data.length == 0) {
Ext.Msg.show({
title : '提示',
msg : '请选择对应行数据',
buttons : Ext.Msg.OK
});
} else {
var rowData = data.items[0].data;
//showUpdateWin(rowData);//打开修改窗口
}
}
},{
xtype : 'tbseparator'
},{
text : '刷新',
handler : function(btn) {
// 数据重新载入
store.reload();
}
}, {
xtype : 'tbseparator'
}, {
text : '删除',
handler : function(btn) {
var data = grid.getSelectionModel().selected;
if (data.length == 0) {
Ext.Msg.show({
title : '提示',
msg : '请选择对应行数据',
buttons : Ext.Msg.OK
});
} else {
Ext.Msg.confirm('提示', '确认操作?', function(btn) {
if ('yes' == btn) {
Ext.Ajax.request({
url : "general/product/delete/"+data.items[0].data.id,
success : function(response, form) {
var json = Ext.decode(response.responseText);
if (json.success === true) {
Ext.Msg.alert('提示','删除成功');
store.reload();
} else {
Ext.Msg.alert('提示',json.flag);
}
},
failure : function(response, fm) {
Ext.Msg.alert('提示','删除失败');
}
});
}
});
}
}
}],
bbar:new Ext.PagingToolbar({
store : store,
displayInfo : true,
displayMsg : '当前 {0} - {1}条,共 {2}条',
emptyMsg : "No topics to display"
})
});
var viewPort = new Ext.Viewport({
layout : 'fit',
items : [grid]
});
});
- 大小: 35.3 KB
分享到:
相关推荐
本实例“ext实例 左边是 tree 右边是grid 双击grid弹出form修改”是针对初学者的一个宝贵资源,它演示了如何将这些组件结合起来,实现交互式的数据操作。 1. **树形控件(Tree)**:在左边展示数据结构,通常用于...
#### 三、创建 Grid Panel 最后一步是创建 `GridPanel` 并将其与 `RowEditor` 关联起来。这通常涉及到配置 `GridPanel` 的属性以及绑定数据存储等步骤。 ```javascript // 创建 GridPanel var grid = new Ext.grid...
4. **创建Grid Panel**: 创建一个Ext.grid.Panel实例,将Store、Model和Column Model绑定到Grid Panel上。还可以配置其他选项,如分页、排序和过滤。 5. **加载数据**: 在页面加载时,Store会自动发送请求到Web服务...
通过`Ext.grid.Panel`的`plugins`属性启用分页插件`Ext.grid.plugin.PagingToolbar`,并与`store`的`proxy`配置相结合,可以实现按需从服务器请求数据。`proxy`中的`type`设置为`ajax`或`rest`,并配置`api`属性来...
4. **创建Grid Panel**:在Panel内创建一个Grid Panel实例,将Column Model和Store关联起来,设定表格的基本属性,如高度、宽度、可排序性等。 5. **配置Panel**:为Panel添加配置,如标题、布局、工具栏等。如果...
EXT实例通常涉及到一系列操作步骤,包括页面布局、窗口创建以及表格的使用。 **页面布局**是EXT的核心功能之一,它提供了多种布局模式来适应不同设计需求。常见的布局有: 1. **Accordion布局**:这种布局方式使得...
6. **实例化Panel**:最后,我们需要实例化这个Grid Panel,并将其添加到容器(如Viewport或一个Panel)中,使其在页面上显示。 在描述中提到的"自己写的editpanel实例"可能是指开发者自定义了一个编辑面板,这通常...
"EXT实例集"是一个集合,包含了多种EXT的使用示例,对于初学者和有经验的EXT开发者来说都是一个宝贵的资源。 在EXT中,组件是构建用户界面的基础,包括表格(Grid)、面板(Panel)、窗口(Window)、菜单(Menu)...
1. **创建EXT Grid**:首先,你需要创建一个EXT Grid实例,定义列模型、数据源、以及任何其他必要的配置项。例如,你可以使用`Ext.create('Ext.grid.Panel', { ... })`来创建Grid,并设置`columns`,`store`等属性。...
9.3.3 面板标题栏构件:ext.panel.header与ext.panel.tool / 438 9.3.4 记录和恢复面板属性:ext.util.memento / 439 9.3.5 面板常用的配置项、方法和事件 / 439 9.4 布局 / 441 9.4.1 布局概述 / 441 9.4.2 ...
它提供了丰富的组件系统,包括Panel、Grid、Form等,而Panel是EXTJS中的核心组件之一,可以视为一个可自定义的容器,可以包含其他组件。 在传统的EXTJS中,`viewport`是一个特殊的布局,用于将整个页面作为其渲染...
在"Java AJAX ext实例"中,我们主要探讨以下几个关键知识点: 1. **EXT.js框架**:EXT.js 提供了一整套高度可定制的组件,如窗口、面板、表格、表单等,使得开发者可以快速构建复杂的用户界面。它的组件化设计允许...
它包括但不限于表格(Grid)、面板(Panel)、窗口(Window)、菜单(Menu)、按钮(Button)、表单(Form)、树形视图(Tree)、图表(Charts)等,这些组件设计精美且易于定制,能够满足各种界面设计需求,为用户...
在"增删改查"实例中,我们将利用`Ext.grid.Panel`的配置项和事件来实现对表格数据的操作。 1. **创建表格(Create)** 创建数据通常涉及到在表格中添加新行。在Ext JS中,我们可以使用`store`对象的`add()`方法来...
4. 创建Grid:实例化Grid Panel,设置列配置和Store。 5. 显示Grid:将Grid添加到页面布局中,确保它能被正确渲染。 6. 配置Ajax请求:处理Ajax请求和响应,通常通过EXT的Proxy组件完成。 7. 如果需要,添加...
2.Ext 的model,store,grid使用,store如何接收json数据 3.form.Panel的分离,如何引用。 4.Ext.define的命名包含了namespace。 *本例子是简单的实现了一下jsp+ex4的使用,引用了: Ext.form.Panel Ext.data.Model ...
在"ext tree grid 的高级实例运用"中,我们将深入探讨如何有效地结合这两个组件,实现复杂的交互功能。EXT JS允许开发者创建具有拖放功能、节点信息展示、增删修改以及多级选择的树形网格视图,从而提供更加直观和...
在"LearningExtJS 第五章节的翻译"中,我们可以期待找到关于EXT JS Grid的详细讲解和实例应用。 EXT JS的Grid组件提供了丰富的功能,如分页、排序、过滤、编辑等,可以灵活地适应各种业务需求。以下是一些关于EXT ...
1. **EXT JS组件**:EXT JS提供了一系列组件,如按钮(Button)、面板(Panel)、表格(Grid)、树形视图(Tree)、窗口(Window)等。这些组件具有丰富的可定制性和可扩展性,可以满足不同类型的界面需求。 2. **...
- `grid`: 引发事件的GridPanel实例。 - `rowIndex`: 用户点击的行的索引。 - `columnIndex`: 用户点击的列的索引。 - `e`: 事件对象,包含有关点击的更多信息。 3-9. 获取单元格值的步骤: - `editCell_row =...