lyon_fanfan
2009-12-16 13:35
浏览 267
已采纳

Ext 类继承的问题

我写了一个公共window类 主要作用是封装添加、修改员工的作用 已经实现 但是还有些小问题
1。如何声明内部变量
2。初始化数据如何该怎么写在类里面 而不需要外部调用才能初始化
代码如下:
[code="java"]
//用于智能提示显示
///
/*
人员编辑,添加公用页面类
*/
Ext.ux.EmployeeEditWindow = function(config){
//窗体隐藏属性 员工ID 新增为0
this.EmployeeEditWindow_ID = '-1';
//提交按钮的事件
this.EmployeeEidtWindow_SubmitFun = config.EmployeeEidtWindow_FunSubmit;
//窗口类型 'Add','Edit'
this.EmployeeEditWindow_WindowType = config.EmployeeEditWindow_WindosType;
//初始化数据
this.EmployeeEditWindow_InitData = config.EmployeeEditWindow_InitData;
//提交完毕后 需要刷新的storedata
this.EmployeeEditWindow_RefreshStore = config.EmployeeEditWindow_RefreshStore;

Ext.ux.EmployeeEditWindow.superclass.constructor.call(this,config);

}

Ext.extend(Ext.ux.EmployeeEditWindow,Ext.Window,{
labelSeparator : ': ',
buttonAlign : 'center',
plain: true,
resizable: false,
height: 220,
width: 600,
modal : true,
//************************************显示编辑页面<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
initFormPanel:function(){

//-->页面
var Employee_ShowEmployeeForm_OKButton = new Ext.Button({
name : 'Employee_ShowEmployeeForm_OKButton',
text : '提 交',
minWidth : 100

});
var Employee_ShowEmployeeForm_CancelButton = new Ext.Button({
name : 'Employee_ShowEmployeeForm_CancelButton',
text : '取 消',
minWidth : 100
});
var Employee_ShowEmployeeForm_CName = new Ext.form.TextField({
name : 'CName',
fieldLabel : '姓 名',
allowBlank : false,
width : 150
});
var Employee_ShowEmployeeForm_EName = new Ext.form.TextField({
name : 'EName',
fieldLabel : '英 文 名',
width : 150
});
var Employee_ShowEmployeeForm_Password = new Ext.form.TextField({
name : 'Password',
inputType : 'password',
fieldLabel : '密 码',
allowBlank : false,
width : 150
});
var Employee_ShowEmployeeForm_RepeatPassword = new Ext.form.TextField({
name : 'RepeatPassword',
inputType : 'password',
vtype:'password',
fieldLabel : '重复密码',
allowBlank : false,
width : 150,
vtype:'password',
vtypeText:"两次密码不一致!",
confirmTo:Employee_ShowEmployeeForm_Password.getId()
});
var Employee_ShowEmployeeForm_PhoneCall = new Ext.form.TextField({
name : 'PhoneCall',
fieldLabel : '座 机',
width : 150
});
var Employee_ShowEmployeeForm_MobileNo = new Ext.form.TextField({
name : 'MobileNo',
fieldLabel : '手 机',
width : 150
});
var Employee_ShowEmployeeForm_Birthday = new Ext.form.DateField({
name : 'Birthday',
fieldLabel : '生 日',
width : 150
});
var Employee_ShowEmployeeForm_Department = GetDepartmentTree('所属部门','DepartmentID');
var Employee_ShowEmployeeForm_Sex = GetDictionaryByCategoryID(1,'性 别',true,'SexID');
Employee_ShowEmployeeForm_Sex.width = 150;
var Employee_ShowEmployeeForm_Duty = GetDictionaryByCategoryID(5,'职 务',true,'DutyID');
Employee_ShowEmployeeForm_Duty.width = 150;

    return new Ext.form.FormPanel({
        name : 'Employee_ShowEmployeeForm_Panel',
        frame : true,
        border : false,
        labelAlgin:'right',
        modal : true,
        items : [
            {layout:'column',border:false,items:[
                    {columnWidth:.5,layout:'form',border:false,items:[
                        Employee_ShowEmployeeForm_CName
                    ]},
                    {columnWidth:.5,layout:'form',border:false,items:[
                        Employee_ShowEmployeeForm_EName
                    ]}                        
            ]},      
            {layout:'column',border:false,items:[
                    {columnWidth:.5,layout:'form',border:false,items:[
                        Employee_ShowEmployeeForm_Password
                    ]},
                    {columnWidth:.5,layout:'form',border:false,items:[
                        Employee_ShowEmployeeForm_RepeatPassword
                    ]}                        
              ]},
              {layout:'column',border:false,items:[
                    {columnWidth:.5,layout:'form',border:false,items:[
                        Employee_ShowEmployeeForm_MobileNo
                    ]},
                    {columnWidth:.5,layout:'form',border:false,items:[
                        Employee_ShowEmployeeForm_PhoneCall
                    ]}                        
              ]},
              {layout:'column',border:false,items:[
                    {columnWidth:.5,layout:'form',border:false,items:[
                        Employee_ShowEmployeeForm_Birthday
                    ]},
                    {columnWidth:.5,layout:'form',border:false,items:[
                        Employee_ShowEmployeeForm_Department
                    ]}                        
              ]},
              {layout:'column',border:false,items:[
                    {columnWidth:.5,layout:'form',border:false,items:[
                        Employee_ShowEmployeeForm_Sex
                    ]},
                    {columnWidth:.5,layout:'form',border:false,items:[
                        Employee_ShowEmployeeForm_Duty
                    ]}                        
              ]}
        ] 
    });
},
//************************************提交按钮事件<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
AppendButtonDell:function(){
    if (this.fp.form.isValid()){
        this.fp.form.doAction('submit',
        {
            url : 'JSON/System/Employee.aspx',
            mothed:'POST',
            waitMsg:'正在提交。。。',
            params : {FunctionName : 'Sys_Employee_AddEmployee'},
            success : function(form, action){
                var json = action.result.success;
                if (json){
                   Ext.Msg.alert('系统提示','新职员数据成功!');
                   this.fp.form.reset();
                   if (this.EmployeeEditWindow_RefreshStore){
                        this.EmployeeEditWindow_RefreshStore.reload();
                   }
                }
                else{
                   Ext.Msg.alert('系统提示','数据提交失败,请重试!');
                }                                                
            }.createDelegate(this),
            failure : function(form, action){
                switch (action.failureType){                
                    case Ext.form.Action.CLIENT_INVALID:
                        Ext.Msg.alert("错误", "提交的表单数据无效,请检查!");
                        break;
                    case Ext.form.Action.CONNECT_FAILURE:
                        Ext.Msg.alert("错误", "服务器连接失败,请稍后再试!");
                        break;
                    case Ext.form.Action.SERVER_INVALID:
                      Ext.Msg.alert("错误", "提交服务器出错,请联系管理员!");
                }
            }.createDelegate(this)
        });            
    }
    else {
        Ext.Msg.alert('系统提示','有必填项没有填写或者两次密码不一致,请检查!');
    };
},
//************************************初始化页面事件<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
InitData:function(){
    if (this.EmployeeEditWindow_WindowType == 'add'){
        return;
    };
    if (this.EmployeeEditWindow_InitData[0]){
        if (this.fp){
            this.fp.form.loadRecord(this.EmployeeEditWindow_InitData[0]);
        }
    }
    this.EmployeeEditWindow_ID = this.EmployeeEditWindow_InitData[0].get('ID');
},
//************************************取消按钮事件<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
CancelButtonDell:function(){
    if (this){
        this.close();
    }        
},
//************************************初始化界面<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
initComponent : function(){
    Ext.ux.EmployeeEditWindow.superclass.initComponent.call(this);
    this.fp = this.initFormPanel();
    this.add(this.fp);
    this.addButton('取  消',this.CancelButtonDell,this);
    this.addButton('提  交',this.AppendButtonDell,this);
    if (this.EmployeeEditWindow_WindowType == 'add'){
        this.title = '添加员工'
    }
    else if (this.EmployeeEditWindow_WindowType == 'edit'){
        this.title = '修改员工'
    };
}
//************************************初始化界面<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

})
[/code]
[b]问题补充:[/b]
我修改成这个样子
[code="java"]
Ext.ux.EmployeeEditWindow = function(config){
//窗体隐藏属性 员工ID 新增为0
this.EmployeeEditWindow_ID = '-1';
//提交按钮的事件
this.EmployeeEidtWindow_SubmitFun = config.EmployeeEidtWindow_FunSubmit;
//窗口类型 'Add','Edit'
this.EmployeeEditWindow_WindowType = config.EmployeeEditWindow_WindosType;
//初始化数据
this.EmployeeEditWindow_InitData = config.EmployeeEditWindow_InitData;
//提交完毕后 需要刷新的storedata
this.EmployeeEditWindow_RefreshStore = config.EmployeeEditWindow_RefreshStore;

var sss = 'dddd';

Ext.ux.EmployeeEditWindow.superclass.constructor.call(this,config);

}
[/code]

但是在下面
Ext.extend(Ext.ux.EmployeeEditWindow,Ext.Window,{
。。。。
}
好像无法访问到sss 应该如何访问sss呢?

另外 我页面中有几个combobox 但是我发现点击修改后 字典没有翻译成为数据 为什么?应该怎么处理呢?谢谢

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

2条回答 默认 最新

相关推荐 更多相似问题