ext实例三(ext4.2 、Ext.grid.Panel)

[color=blue]如果我的博文能帮到你,我感到非常荣幸。能力所限,对于我所写的内容如有不详不对,你们能给一些意见的话我将非常感谢。以后我会将我在工作中学到的一些知识,尽量整理出来给大家分享。 你们的意见是我的动力[/color]

效果图:
[img]http://dl2.iteye.com/upload/attachment/0112/0529/83857007-3dd6-3b04-9d8b-bd7ee917378a.png[/img]

第一步:创建数据源,本例使用的是远程请求数据,当然你可以使用静态的数据(不过在实际的应用中通常都是通过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]
});


[color=red][b][size=medium]gridPanel完整代码:[/size][/b][/color]
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]
});
});
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值