EXT 模块化 编程实现人员信息的添加

对Ext 模块化编程 研究了下。 还有 对异常的处理技巧 , 事件的公布 及 触发(可能有的叫法不同).
自己的感悟是 和JAVA语言 非常的相似。
测试页面只需一句JS就可以调用 很多功能。
此例: 在测试页面加上 Ext.onReady(function(){new ViewGrid();}); 即可

以下是 模板的代码:
欢迎各位 投蛋 ,意见.
ViewGrid = Ext.extend(Ext.grid.GridPanel,{
insertWin:null,
updateWin:null,
constructor:function(){
this.insertWin = new InsertWindowInfo();
this.updateWin = new UpdateWindowInfo();
ViewGrid.superclass.constructor.call(this,{
title:'GridPanel',
renderTo:Ext.getBody(),
width:320,
height:200,
tbar:[{
text:'添加人员',
handler:function(){
this.insertWin.show();
},scope:this
},'-',{
text:'修改人员',
handler:function(){
this.updateWin.show();
try{
var _r = this.getSelected();
this.updateWin.form.setValues(_r);
}catch(error){
Ext.Msg.alert(error.description);
this.updateWin.close();
}
},
scope:this
},'-',{
text:'删除人员',
handler:this.deleteEmp,
scope:this
}],
colModel:new Ext.grid.ColumnModel([{
header:'姓名'
},{
header:'性别'
},{
header:'年龄'
}]),
store:new Ext.data.JsonStore({
autoLoad:true,
data:[{name:'张翔',sex:'男',age:22},{name:'李慧敏',sex:'女',age:21}],
fields:['name','sex','age']
}),
selModel:new Ext.grid.RowSelectionModel({
singleSelect:true,
listeners:{
'rowselect':{
fn:function(_sel,_index,_r){
this.fireEvent('rowselect',_r);
},
scope:this
}
}
})
});
this.addEvents('rowselect');
this.insertWin.on('submit',this.onInsertWinSubmit,this);
this.updateWin.on('submit',this.onUpdateWinSubmit,this);
},
insertRecord:function(_r){
this.store.add(_r);
},
updateRecord:function(_r){
try{
var _nr = this.getSelected();
var _data = _r.data;
for(var i in _data){
_nr.set(i,_data[i]);
}
_nr.commit();
}catch(error){
alert(error.description);
}
},
deleteRecord:function(_r){
this.getStore().remove(_r);
},
onInsertWinSubmit:function(_win,_r){
this.insertRecord(_r);
},
getSelected:function(){
var sm = this.getSelectionModel();
if(sm.getCount() == 0)throw Error("请选择一条记录");
else return sm.getSelected();
},
onUpdateWinSubmit:function(_win,_r){
this.updateRecord(_r);
},
deleteEmp:function(_r){
try{
this.deleteRecord(this.getSelected());
}catch(error){
Ext.MessageBox.alert('系统提示','请选择一条记录');
}
}
});

//---------------------------------------------------------------------------------------------------------
FormInfo = new Ext.extend(Ext.form.FormPanel,{
constructor:function(){
FormInfo.superclass.constructor.call(this,{
frame:true,
defaultType:'textfield',
labelWidth:35,
//baseCls:'x-plain',
defaults:{'anchor':'95%'},
plain:true,
items:[{
fieldLabel:'姓名',
name:'name'
},{
fieldLabel:'年龄',
vtype:'age',
name:'age'
},{
fieldLabel:'性别',
name:'sex',
readonly:true,
xtype:'combo',
displayField:'sex',
mode:'local',
triggerAction:'all',
value:'男',
store:new Ext.data.ArrayStore({
fields:['sex'],
data:[['男'],['女']]
})
}]
});
},
getValues:function(){
if(this.getForm().isValid())
return new Ext.data.Record(this.getForm().getValues());
else
throw Error('没有通过验证');
},
setValues:function(_r){
this.getForm().loadRecord(_r);
},
reset:function(){
this.getForm().reset();
}
});

//-------------------------------------------------------------------------------------------------------------
WindowInfo =Ext.extend(Ext.Window,{
form:null,
constructor:function(){
this.form = new FormInfo();
WindowInfo.superclass.constructor.call(this,{
renderTo:Ext.getBody(),
width:300,
height:150,
plain:true,
items:this.form,
buttons:[{
text:'确定',
handler:this.onWindowSubmit,
scope:this
},{
text:'取消',
handler:this.onWindowCancel,
scope:this
}]
});
this.addEvents("submit");
},
close:function(){
this.form.reset();
this.hide();
},
onWindowSubmit:function(){
try{
this.fireEvent('submit',this,this.form.getValues());
}catch(error){
return ;
}
this.form.reset();
this.hide();
},
onWindowCancel:function(){
this.form.reset();
this.hide();
}
});
//-------------------------------------------------------------------------------------------------------
InsertWindowInfo = Ext.extend(WindowInfo,{
title:'添加人员'
});
//-------------------------------------------------------------------------------------------------------

UpdateWindowInfo = Ext.extend(WindowInfo,{
title:'修改人员'
});
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本题且课程将一步步帮你完成基于ASP.NET固定资产管理系统设计开发实战的全过程。 本课程完整记录基于ASP.NET固定资产管理毕业设计的制作过程,帮助大学生学习毕业设计系统的实现过程。本课程为ASP.NET毕业设计的设计全过程录像辅导,固定资产管理系统毕业设计基于ASP.NET,开发环境为Visual Studio 2015和SQL Server 2014设计完成,系统主能够实现用户权限的动态分配,系统主要包括部门管理、用户管理、固定资产管理、固定资产折旧管理、固定资产借出管理、固定资产报修管理、固定资产统计管理和固定资产报废管理八个模块ASP.NET固定资产管理系统源码在课程的最后章节中 如没有或需要最新源码请联系讲师该课程为成品讲解,不提供免费讲解、答疑和功能完善等,需要可付费。基于ASP.NET固定资产管理系统毕业设计的主要优势有以下几个方面:1、学习难度低,满足大多数应届毕业生和对编程了解程度较低人群的学习要求。2、界面友好性强,使用最新前端模板进行后台管理员界面设计。3、系统功能和工作量大,满足大多数院校的毕业设计要求4、实现固定资产业务和流程的管理5、实现多图表统计。6、全设计过程录像 本套课程售价为399元  不需要源码的同学可享受活动价格优惠学习视频教程, 如需获取源码,当所有活动折扣/会员满减等最终售价低于课程价格时,请额外补足差价
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值