班级(Classes)的CURD
修改megaminx-extjs/pom.xml文件,如下:
<dependencies>
......
<dependency>
<groupId>org.megaminx</groupId>
<artifactId>megaminx-example</artifactId>
<version>${project.version}</version>
</dependency>
......
</dependencies>
修改megaminx-extjs/src/main/resources/struts.xml文件,如下:
<struts>
......
<include file="res/struts-example.xml"></include>
<include file="res/struts-system.xml"></include>
</struts>
modules/example/js/Classes.js文件, 全部代码如下:
Megaminx.modules.example.Classes ={
formTitle:'Classes Info'
,gridTitle: 'Classes List'
,deleteMsg: 'Are you sure to delete this classes [{0}]'
}
Ext.apply(Megaminx.modules.example.Classes, {
_id:function(){
return {
id:Ext.id()
,fxtype:'numberfield'
,type:Ext.data.Types.NUMBER
,name:'ID'
,title:this.idTitle || 'ID'
,mapping:'ID'
,sortable:true
,width: 30
,alias:'_classes'
};
}
,_version:function(){
return {
id:Ext.id()
,fxtype:'numberfield'
,type:Ext.data.Types.INTEGER
,name:'version'
,title:this.versionTitle || 'Version'
,mapping:'version'
,sortable:false
,width: 30
,alias:'_classes'
};
}
,_name:function(){
return {
id:Ext.id()
,fxtype:'textfield'
,type:Ext.data.Types.STRING
,name:'name'
,title:this.nameTitle ||'Name'
,mapping:'name'
,sortable:true
,width: 80
,maxLength:50
,alias:'_classes'
};
}
,_description:function(){
return {
id:Ext.id()
,fxtype:'textarea'
,type:Ext.data.Types.STRING
,name:'description'
,title:this.descriptionTitle ||'Description'
,mapping:'description'
,sortable:true
,width: 80
,maxLength:255
,alias:'_classes'
};
}
,_advistor:function(){
return {
id:Ext.id()
,fxtype:'textfield'
,type:Ext.data.Types.STRING
,name:'advistor'
,title:this.advistorTitle ||'Advistor'
,mapping:'advistor'
,sortable:true
,width: 80
,maxLength:50
,alias:'_classes'
};
}
});
Megaminx.modules.example.ClassesStore = function(config){
config = config ||{};
var classes = Megaminx.modules.example.Classes;
var _id = classes._id();
var _version = classes._version();
var _name = classes._name();
var _advistor = classes._advistor();
var _description = classes._description();
Ext.apply(config, {
namespace: 'example/classes'
,reader:new Ext.data.JsonReader(
{
root:'data'
,idProperty:_id.name
,totalProperty:'total'
}
,Ext.data.Record.create([
{name: _id.name, mapping:_id.mapping, type: _id.type}
,{name: _version.name, mapping:_version.mapping, type: _version.type}
,{name: _name.name, mapping:_name.mapping, type: _name.type}
,{name: _advistor.name, mapping:_advistor.mapping, type: _advistor.type}
,{name: _description.name, mapping:_description.mapping, type: _description.type}
])
)
});
Megaminx.modules.example.ClassesStore.superclass.constructor.call(this, config);
};
Ext.extend(Megaminx.modules.example.ClassesStore, Megaminx.data.Store, {
/**
* @param {Object} the object of Classes
*/
_save:function(data){
this.setBaseParam(Megaminx.actionName, 'save.action');
var options = {waitMsg:Megaminx.waitMsg.saving,userOpt:Megaminx.operate.save}
Megaminx.modules.example.ClassesStore.superclass._load.call(this, data,options);
}
/**
* @param {Object} the object of Classes
*/
,_delete:function(data){
this.setBaseParam(Megaminx.actionName, 'delete.action');
var options = {waitMsg:Megaminx.waitMsg.deleting,userOpt:Megaminx.operate.del}
Megaminx.modules.example.ClassesStore.superclass._load.call(this, data,options);
}
,_filter:function(options){
this.setBaseParam(Megaminx.actionName, 'filter.action');
options = options || {};
options.waitMsg = Megaminx.waitMsg.loading;
options.userOpt = Megaminx.operate.load;
Megaminx.modules.example.ClassesStore.superclass._filter.call(this, options);
}
,_create:function(){
return new this.recordType({
ID:null
,version:null
,name:null
,advistor:null
,description:null
});
}
});
Ext.reg('example.classesstore', Megaminx.modules.example.ClassesStore);
Megaminx.modules.example.ClassesGrid = function(config){
Megaminx.modules.example.ClassesGrid.superclass.constructor.call(this, config);
};
Ext.extend(Megaminx.modules.example.ClassesGrid, Megaminx.grid.Grid, {
title: Megaminx.modules.example.Classes.gridTitle
,initComponent:function() {
var classes = Megaminx.modules.example.Classes;
var _id = classes._id();
var _version = classes._version();
var _name = classes._name();
var _advistor = classes._advistor();
var _description = classes._description();
var meta = this._meta;
this._initColumns = [{
id:_id.id
,header: _id.title
, width: _id.width
, sortable: _id.sortable
, dataIndex: _id.name
},{
id:_version.id
,header: _version.title
, width: _version.width
, sortable: _version.sortable
, dataIndex: _version.name
, hidden:true
},{
id:_name.id
,header: _name.title
, width: _name.width
, sortable: _name.sortable
, dataIndex: _name.name
},{
id:_advistor.id
,header: _advistor.title
, width: _advistor.width
, sortable: _advistor.sortable
, dataIndex: _advistor.name
},{
id:_description.id
,header: _description.title
, width: _description.width
, sortable: _description.sortable
, dataIndex: _description.name
}];
Megaminx.modules.example.ClassesGrid.superclass.initComponent.apply(this, arguments);
this._id = this.findById(_id.id);
this._version = this.findById(_version.id);
this._name = this.findById(_name.id);
this._advistor = this.findById(_advistor.id);
this._description = this.findById(_description.id);
}
});
Ext.reg('example.classesgrid', Megaminx.modules.example.ClassesGrid);
Megaminx.modules.example.ClassesForm = function(config){
Megaminx.modules.example.ClassesForm.superclass.constructor.call(this, config);
};
Ext.extend(Megaminx.modules.example.ClassesForm, Megaminx.form.Form, {
title: Megaminx.modules.example.Classes.formTitle
,height:130
,initComponent:function() {
var classes = Megaminx.modules.example.Classes;
var _id = classes._id();
var _version = classes._version();
var _name = classes._name();
var _advistor = classes._advistor();
var _description = classes._description();
var config ={
items:[{
id:_version.id
,xtype:'hidden'
,name:_version.name
},{
layout:'column'
,items:[{
columnWidth:.5
,layout: 'form'
,items:[{
id:_id.id
,xtype: _id.fxtype
,name:_id.name
,fieldLabel:_id.title
,anchor:'95%'
}]
},{
columnWidth:.5
,layout: 'form'
,items:[{
id:_name.id
,xtype: _name.fxtype
,name:_name.name
,maxLength: _name.maxLength
,fieldLabel:_name.title
,allowBlank: false
,anchor:'95%'
}]
}]
},{
id:_advistor.id
,xtype: _advistor.fxtype
,name:_advistor.name
,maxLength: _advistor.maxLength
,fieldLabel:_advistor.title
,allowBlank: false
,anchor:'97.5%'
},{
id:_description.id
,xtype: _description.fxtype
,name:_description.name
,maxLength: _description.maxLength
,fieldLabel:_description.title
,anchor:'97.5%'
}]
};
Ext.apply(this, Ext.apply(this.initialConfig, config));
Megaminx.modules.example.ClassesForm.superclass.initComponent.apply(this, arguments);
this._id = this.findById(_id.id);
this._version = this.findById(_version.id);
this._name = this.findById(_name.id);
this._advistor = this.findById(_advistor.id);
this._description = this.findById(_description.id);
}
,setReadOnly:function(bool){
Megaminx.modules.example.ClassesForm.superclass.setReadOnly.call(this,bool);
this._id.setReadOnly(true);
}
,_delete:function(){
if (! this.store) return;
if (Ext.isEmpty(this._id.getValue)) return;
Ext.MessageBox.confirm('Confirm'
,String.format(Megaminx.modules.example.Classes.deleteMsg, this._name.getValue())
,function(btn){
if (btn == 'yes'){
this.store._delete(this.getValues());
}
}
,this
)
}
,_save:function(){
if (! this.store) return;
if (this.isValid()){
this.store._save(this.getValues());
}
}
,_create:function(){
this.loadData(this.store._create());
}
});
Ext.reg('example.classesform', Megaminx.modules.example.ClassesForm);
Megaminx.modules.example.ClassesGridRowNumber = function(config){
Megaminx.modules.example.ClassesGridRowNumber.superclass.constructor.call(this, config);
};
Ext.extend(Megaminx.modules.example.ClassesGridRowNumber, Megaminx.modules.example.ClassesGrid, {
initComponent:function() {
Ext.apply(this, Ext.apply(this.initialConfig, {columns: [new Ext.grid.RowNumberer()]}));
Megaminx.modules.example.ClassesGridRowNumber.superclass.initComponent.apply(this, arguments);
}
});
Ext.reg('example.classesgridrownumber', Megaminx.modules.example.ClassesGridRowNumber);
Megaminx.modules.example.ClassesGridFilters = function(config){
config = config || {};
var classes = Megaminx.modules.example.Classes;
var _id = classes._id();
var _version = classes._version();
var _name = classes._name();
var _advistor = classes._advistor();
var _description = classes._description();
Ext.apply(config, {
filters: [{
type: _id.type
,dataIndex: _id.name
,component: _id.component
,alias:_id.alias
}, {
type: _name.type
,dataIndex: _name.name
,component: _name.component
,alias:_name.alias
},{
type: _advistor.type
,dataIndex: _advistor.name
,component: _advistor.component
,alias:_advistor.alias
}, {
type: _description.type
,dataIndex: _description.name
,component: _description.component
,alias:_description.alias
}]
});
Megaminx.modules.example.ClassesGridFilters.superclass.constructor.call(this, config);
};
Ext.extend(Megaminx.modules.example.ClassesGridFilters, Megaminx.grid.GridFilters, {
minFilters: 1
});
Ext.preg('example.classesgridfilters', Megaminx.modules.example.ClassesGridFilters);
在modules/example/js下创建Classes.Main.CURD.js文件,如下:
Megaminx.modules.example.ClassesMainCURD = Ext.extend(Megaminx.app.Panel, {
DBID:100
,layout:'border'
,initComponent:function(){
classes_grid_id=Ext.id();
classes_form_id=Ext.id();
classes_gridfilters_id=Ext.id();
var config = {
tbar:{
defaults:{
iconAlign: "left"
,scale:"medium"
}
,buttonAlign:"left"
,items:[{
iconCls: "btn-find-icon-24"
, scope: this
, handler: this.OnFindClick
, ref: "../findBtn"
, text: "Find"
, tooltip: "Find privileges"
}
, "-"
,{
iconCls: "btn-add-icon-24"
, scope: this
, handler: this.OnAddClick
, ref: "../addBtn"
, text: "Add"
, tooltip: "Add a new privilege"
}
, "-"
,{
iconCls: "btn-edit-icon-24"
, scope: this
, handler: this.OnEditClick
, ref: "../editBtn"
, text: "Edit"
, tooltip: "Edit a privilege"
}
, "-"
, {
iconCls: "btn-del-icon-24"
, scope: this
, handler: this.OnDeleteClick
, ref: "../deleteBtn"
, text: "Delete"
, tooltip: "Delete selected privilege"
}
, "-"
, {
iconCls: "btn-save-icon-24"
, scope: this
, handler: this.OnSaveClick
, ref: "../saveBtn"
, text: "Save"
, tooltip: "Save new privilege"
}
, "-"
,{
iconCls: "btn-cancel-icon-24"
, scope: this
, handler: this.OnCancelClick
, ref: "../cancelBtn"
, text: "Cancel"
, tooltip: "Cancel operation"
}
,"-"
, {
iconCls: "btn-exit-icon-24"
, scope: this
, handler: this.OnExitClick
, ref: "../exitBtn"
, text: "Exit"
, tooltip: "Exit window"
}]
}
,items:[{
id:classes_form_id
,region:'north'
,xtype:'example.classesform'
,store:{
xtype:'example.classesstore'
}
},{
id:classes_grid_id
,region:'center'
,xtype:'example.classesgridrownumber'
,store:{
xtype:'example.classesstore'
}
,bbar:{
xtype:'megaminx.paging'
}
,plugins:[{
id:classes_gridfilters_id
,ptype:'example.classesgridfilters'
}]
,sm: new Ext.grid.RowSelectionModel({singleSelect: true})
}
]
};
Ext.apply(this, Ext.apply(this.initialConfig, config));
Megaminx.modules.example.ClassesMainCURD.superclass.initComponent.apply(this, arguments);
this._classesGrid = this.getCmpById(classes_grid_id);
this._classesForm = this.getCmpById(classes_form_id);
this._classesGridFilters = this.getCmpById(classes_gridfilters_id);
}
,OnEditClick:function(){
alert('edit');
}
,OnFindClick:function(){
alert('find');
}
,OnExitClick:function(){
if(this.ownerCt)
this.ownerCt.destroy();
}
,OnDeleteClick:function(){
alert('delete');
}
,OnSaveClick:function(){
alert('save');
}
,OnAddClick:function(){
alert('save')
}
,OnCancelClick:function(){
alert('cancel');
}
});
Ext.reg('example.classesmaincurd', Megaminx.modules.example.ClassesMainCURD);
修改数据库中Classes的定义:
insert into msystem.form (id, version, create_date, modify_date, name, description, data, folder) values (100, 0, null, null, 'manager classes', 'add/modfiy/read/delete classes', '{
config:{
xtype:"example.classesmaincurd"
,title:"Classes"
}
,javascript:[
{
directory:"modules/example/js/"
,files:[
"Classes.js"
,"Classes.Main.CURD.js"
]
}
]
}', 'example');
运行应用,可以看到如下页面:
生成测试数据如下:
INSERT INTO `classes` (`id`,`version`,`name`,`description`,`advistor`) VALUES ('10000','0','Curabitur','sem semper erat, in consectetuer ipsum nunc id enim. Curabitur','Donec');
INSERT INTO `classes` (`id`,`version`,`name`,`description`,`advistor`) VALUES ('10001','0','netus','cubilia Curae; Donec tincidunt. Donec vitae erat vel pede blandit','egestas');
INSERT INTO `classes` (`id`,`version`,`name`,`description`,`advistor`) VALUES ('10002','0','arcu','nec tempus scelerisque, lorem ipsum sodales purus, in molestie tortor','enim.');
INSERT INTO `classes` (`id`,`version`,`name`,`description`,`advistor`) VALUES ('10003','0','molestie','Aliquam erat volutpat. Nulla dignissim. Maecenas ornare egestas ligula. Nullam','ornare');
INSERT INTO `classes` (`id`,`version`,`name`,`description`,`advistor`) VALUES ('10004','0','mauris','auctor odio a purus. Duis elementum, dui quis accumsan convallis,','Phasellus');
INSERT INTO `classes` (`id`,`version`,`name`,`description`,`advistor`) VALUES ('10005','0','nascetur','sit amet, consectetuer adipiscing elit. Curabitur sed tortor. Integer aliquam','nisi');
INSERT INTO `classes` (`id`,`version`,`name`,`description`,`advistor`) VALUES ('10006','0','sem','consectetuer adipiscing elit. Curabitur sed tortor. Integer aliquam adipiscing lacus.','sit');
INSERT INTO `classes` (`id`,`version`,`name`,`description`,`advistor`) VALUES ('10007','0','Duis','lorem semper auctor. Mauris vel turpis. Aliquam adipiscing lobortis risus.','augue');
INSERT INTO `classes` (`id`,`version`,`name`,`description`,`advistor`) VALUES ('10008','0','cursus','ultricies ligula. Nullam enim. Sed nulla ante, iaculis nec, eleifend','at,');
INSERT INTO `classes` (`id`,`version`,`name`,`description`,`advistor`) VALUES ('10009','0','tincidunt','egestas ligula. Nullam feugiat placerat velit. Quisque varius. Nam porttitor','convallis');
INSERT INTO `classes` (`id`,`version`,`name`,`description`,`advistor`) VALUES ('10010','0','Nullam','sem ut cursus luctus, ipsum leo elementum sem, vitae aliquam','iaculis');
INSERT INTO `classes` (`id`,`version`,`name`,`description`,`advistor`) VALUES ('10011','0','Quisque','velit eget laoreet posuere, enim nisl elementum purus, accumsan interdum','ut');
INSERT INTO `classes` (`id`,`version`,`name`,`description`,`advistor`) VALUES ('10012','0','odio','nec tempus mauris erat eget ipsum. Suspendisse sagittis. Nullam vitae','a');
INSERT INTO `classes` (`id`,`version`,`name`,`description`,`advistor`) VALUES ('10013','0','Nullam','ligula. Donec luctus aliquet odio. Etiam ligula tortor, dictum eu,','Donec');
INSERT INTO `classes` (`id`,`version`,`name`,`description`,`advistor`) VALUES ('10014','0','eget,','tempor lorem, eget mollis lectus pede et risus. Quisque libero','gravida');
INSERT INTO `classes` (`id`,`version`,`name`,`description`,`advistor`) VALUES ('10015','0','Aenean','sollicitudin a, malesuada id, erat. Etiam vestibulum massa rutrum magna.','ut');
INSERT INTO `classes` (`id`,`version`,`name`,`description`,`advistor`) VALUES ('10016','0','malesuada','erat vel pede blandit congue. In scelerisque scelerisque dui. Suspendisse','leo');
INSERT INTO `classes` (`id`,`version`,`name`,`description`,`advistor`) VALUES ('10017','0','Donec','feugiat. Sed nec metus facilisis lorem tristique aliquet. Phasellus fermentum','vitae');
INSERT INTO `classes` (`id`,`version`,`name`,`description`,`advistor`) VALUES ('10018','0','at','aliquet molestie tellus. Aenean egestas hendrerit neque. In ornare sagittis','lorem,');
INSERT INTO `classes` (`id`,`version`,`name`,`description`,`advistor`) VALUES ('10019','0','molestie','mi, ac mattis velit justo nec ante. Maecenas mi felis,','eget,');
INSERT INTO `classes` (`id`,`version`,`name`,`description`,`advistor`) VALUES ('10020','0','nisl.','netus et malesuada fames ac turpis egestas. Aliquam fringilla cursus','sapien.');
INSERT INTO `classes` (`id`,`version`,`name`,`description`,`advistor`) VALUES ('10021','0','libero.','tellus. Aenean egestas hendrerit neque. In ornare sagittis felis. Donec','a,');
INSERT INTO `classes` (`id`,`version`,`name`,`description`,`advistor`) VALUES ('10022','0','ligula.','cursus. Integer mollis. Integer tincidunt aliquam arcu. Aliquam ultrices iaculis','velit.');
INSERT INTO `classes` (`id`,`version`,`name`,`description`,`advistor`) VALUES ('10023','0','sit','luctus sit amet, faucibus ut, nulla. Cras eu tellus eu','fermentum');
INSERT INTO `classes` (`id`,`version`,`name`,`description`,`advistor`) VALUES ('10024','0','Phasellus','Integer eu lacus. Quisque imperdiet, erat nonummy ultricies ornare, elit','ornare');
INSERT INTO `classes` (`id`,`version`,`name`,`description`,`advistor`) VALUES ('10025','0','Nam','tempor lorem, eget mollis lectus pede et risus. Quisque libero','at');
INSERT INTO `classes` (`id`,`version`,`name`,`description`,`advistor`) VALUES ('10026','0','dapibus','magna. Suspendisse tristique neque venenatis lacus. Etiam bibendum fermentum metus.','mi');
INSERT INTO `classes` (`id`,`version`,`name`,`description`,`advistor`) VALUES ('10027','0','interdum','Ut semper pretium neque. Morbi quis urna. Nunc quis arcu','a');
INSERT INTO `classes` (`id`,`version`,`name`,`description`,`advistor`) VALUES ('10028','0','tempor','lorem ut aliquam iaculis, lacus pede sagittis augue, eu tempor','ipsum');
INSERT INTO `classes` (`id`,`version`,`name`,`description`,`advistor`) VALUES ('10029','0','et','a feugiat tellus lorem eu metus. In lorem. Donec elementum,','tellus');
INSERT INTO `classes` (`id`,`version`,`name`,`description`,`advistor`) VALUES ('10030','0','accumsan','nonummy ac, feugiat non, lobortis quis, pede. Suspendisse dui. Fusce','blandit');
INSERT INTO `classes` (`id`,`version`,`name`,`description`,`advistor`) VALUES ('10031','0','lacus.','sem. Pellentesque ut ipsum ac mi eleifend egestas. Sed pharetra,','viverra.');
INSERT INTO `classes` (`id`,`version`,`name`,`description`,`advistor`) VALUES ('10032','0','vel,','ipsum leo elementum sem, vitae aliquam eros turpis non enim.','sit');
INSERT INTO `classes` (`id`,`version`,`name`,`description`,`advistor`) VALUES ('10033','0','quam,','Nulla tempor augue ac ipsum. Phasellus vitae mauris sit amet','rhoncus.');
INSERT INTO `classes` (`id`,`version`,`name`,`description`,`advistor`) VALUES ('10034','0','tristique','Phasellus elit pede, malesuada vel, venenatis vel, faucibus id, libero.','In');
INSERT INTO `classes` (`id`,`version`,`name`,`description`,`advistor`) VALUES ('10035','0','rhoncus.','turpis egestas. Fusce aliquet magna a neque. Nullam ut nisi','vel');
INSERT INTO `classes` (`id`,`version`,`name`,`description`,`advistor`) VALUES ('10036','0','Curabitur','arcu. Curabitur ut odio vel est tempor bibendum. Donec felis','ut');
INSERT INTO `classes` (`id`,`version`,`name`,`description`,`advistor`) VALUES ('10037','0','vehicula.','lacinia orci, consectetuer euismod est arcu ac orci. Ut semper','interdum.');
INSERT INTO `classes` (`id`,`version`,`name`,`description`,`advistor`) VALUES ('10038','0','Aenean','est, mollis non, cursus non, egestas a, dui. Cras pellentesque.','Phasellus');
INSERT INTO `classes` (`id`,`version`,`name`,`description`,`advistor`) VALUES ('10039','0','mi,','fames ac turpis egestas. Aliquam fringilla cursus purus. Nullam scelerisque','parturient');
INSERT INTO `classes` (`id`,`version`,`name`,`description`,`advistor`) VALUES ('10040','0','sed','rutrum, justo. Praesent luctus. Curabitur egestas nunc sed libero. Proin','Nulla');
INSERT INTO `classes` (`id`,`version`,`name`,`description`,`advistor`) VALUES ('10041','0','In','porttitor interdum. Sed auctor odio a purus. Duis elementum, dui','purus.');
INSERT INTO `classes` (`id`,`version`,`name`,`description`,`advistor`) VALUES ('10042','0','Nam','ante ipsum primis in faucibus orci luctus et ultrices posuere','vestibulum');
INSERT INTO `classes` (`id`,`version`,`name`,`description`,`advistor`) VALUES ('10043','0','fringilla','Curae; Donec tincidunt. Donec vitae erat vel pede blandit congue.','nascetur');
完成CURD功能:
初始化界面,包括按钮,控件的事件等等,如下:
Megaminx.modules.example.ClassesMainCURD = Ext.extend(Megaminx.app.Panel, {
......
,initEvents: function() {
Megaminx.modules.example.ClassesMainCURD.superclass.initEvents.call(this);
this._classesGrid.store.on('load', this.OnStoreLoaded, this);
this._classesGrid.store.on('beforeload', this.OnStoreBeforeLoad, this);
this._classesGrid.store.on('exception', this.OnStoreHandleException, this);
this._classesForm.store.on('load', this.OnStoreLoaded, this);
this._classesForm.store.on('beforeload', this.OnStoreBeforeLoad, this);
this._classesForm.store.on('exception', this.OnStoreHandleException, this);
this.on('afterrender', this.OnInitForm, this);
}
,OnInitForm:function(){
this.setButtons(false);
}
,setButtons:function(bool, id){
this.findBtn.setDisabled(bool);
this.addBtn.setDisabled(bool);
this.editBtn.setDisabled(bool || Ext.isEmpty(id));
this.deleteBtn.setDisabled(bool || Ext.isEmpty(id));
this.saveBtn.setDisabled(!bool);
this.cancelBtn.setDisabled(!bool);
this._classesForm.setReadOnly(!bool);
}
,OnStoreLoaded:function(store, records, options){
if (options.userOpt === Megaminx.operate.del){
this._classesGrid._delete(this._classesForm._id.getValue());
this.setButtons(false);
}
else
if (options.userOpt === Megaminx.operate.save){
this._classesGrid._update(records);
this.setButtons(false);
}
Megaminx.modules.example.ClassesMainCURD.superclass.OnStoreLoaded.apply(this, arguments);
}
......
});
查询功能实现:
Megaminx.modules.example.ClassesMainCURD = Ext.extend(Megaminx.app.Panel, {
......
,OnFindClick:function(){
if (! this._classesGridFilters.canFind()){
return;
}
var o = {start: 0,limit: Megaminx.limit, total:0};
this._classesGrid.store._filter({params: o});
}
......
});
点击grid,显示数据到form上:
Megaminx.modules.example.ClassesMainCURD = Ext.extend(Megaminx.app.Panel, {
......
,initEvents: function() {
Megaminx.modules.system.ClassesMainCURD.superclass.initEvents.call(this);
......
this._classesGrid.getSelectionModel().on('rowselect',this.OnRowselect, this);
......
}
,OnRowselect:function(sm, rowIdx, r){
if (this.saveBtn.disabled === false) return;
this._classesForm.loadData(r);
this.setButtons(false, r.id);
}
......
});
add功能:
Megaminx.modules.example.ClassesMainCURD = Ext.extend(Megaminx.app.Panel, {
......
,OnAddClick:function(){
this._classesForm._create();
this.setButtons(true);
}
......
});
edit功能:
Megaminx.modules.example.ClassesMainCURD = Ext.extend(Megaminx.app.Panel, {
......
,OnEditClick:function(){
this.setButtons(true);
}
......
});
delete功能实现:
Megaminx.modules.example.ClassesMainCURD = Ext.extend(Megaminx.app.Panel, {
......
,OnDeleteClick:function(){
this._classesForm._delete();
}
......
});
save功能实现:
Megaminx.modules.example.ClassesMainCURD = Ext.extend(Megaminx.app.Panel, {
......
,OnSaveClick:function(){
this._classesForm._save();
}
......
});
Megaminx项目源码地址:http://code.google.com/p/jmegaminx/