`
ghl116
  • 浏览: 163951 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

关于Ext中重复加载的问题!即增加和修改使用同一个Form

阅读更多

最近在写Ext的程序,增加和修改时,打算使用同一个Form,增加和修改的Widow通过hide 和show来控制显示 ,

但是出现了一个问题,在网上查了半天,终于解决了,原来是Form中字段设置了id,把id取消就好了,参考网址

http://topic.csdn.net/u/20100618/11/a09196cc-550b-41e2-9e19-1c331d54aa1c.html

 

 

 var STUDENT=Ext.data.Record.create([ 
   {name:"sid",type:"string"},  
   {name:"sname"}, 
   {name:"birthday",type:"string"},//type:"date",dataFormat:"Y-m-d"}, 
   {name:"city",type:"string"}, 
   {name:"stature",type:"int"} 
 ]); 
 Ext.apply(Ext.form.VTypes, { 
     LengthLimit:  function(v) { 
         return v.length <=10 
     }, 
     LengthLimitText: "字符串长度不能大于10", 
     IntLimit:function(v){ 
       return v <300; 
     }, 
     IntLimitText:"身高不能大于300" 
 }); 
  
 /******************** 
 *表格,显示人员信息,继承自Ext.grid.GridPanel 
 * 
 ********************/ 
 StudentListGrid=Ext.extend(Ext.grid.GridPanel,{ 
     _store:null, 
     _tbar:null, 
     _addWin:null, 
     _updateWin:null, 
     constructor:function(){ 
           this._store=new Ext.data.JsonStore({ 
               autoLoad:true, 
               url : "grid_service.jsp?action=getAllStudents", 
 			  root:"rows",         
               id:"id", 
               fields:STUDENT, 
               sortInfo:{field: "sid", direction: "DESC"} 
                             
          }); 
          this._tbar=new Ext.Toolbar({ 
             id:"mainMenu", 
             items:["-", 
             { 
              text:"增加用户", 
              id:"addBtn", 
              iconCls:"adduser", 
              handler:function(){ 
                
              this._addWin.show(); 
              this._addWin._form.getForm().reset(); 
              }, 
              scope:this 
              },"-", 
              { 
              text:"修改用户", 
              id:"updateBtn", 
              iconCls:"modifyuser", 
              handler:this.updateFn, 
              scope:this 
              },"-", 
              { 
              text:"删除用户", 
              id:"delBtn", 
              iconCls:"deleteuser", 
              handler:this.deleteFn, 
              scope:this 
              },"-","->", 
              { 
                xtype:"textfield", 
                fieldLabel:"请输入姓名", 
                id:"searchName", 
                width:100, 
                emptyText:"-请输入姓名" 
              },"-",{ 
                text:"搜索", 
                width:50, 
                iconCls:"search", 
                handler:this.searchFn, 
                scope:this 
              },"-" 
             ] 
           
          }); 
          this._addWin=new AddNewStudentWindow(); 
          this._updateWin=new UpdateStudentWindow(); 
        StudentListGrid.superclass.constructor.call(this,{ 
           title:"学生列表", 
           renderTo:Ext.getBody(), 
           id:"main_grid", 
           frame:true, 
           height:300, 
           width:500, 
           tbar:this._tbar, 
           store:this._store, 
           sm: new Ext.grid.RowSelectionModel({ 
                  singleSelect:true 
              }), 
            columns:[ 
              {header:"SID",dataIndex:"sid",hidden:true}, 
              {header:"姓名",dataIndex:"sname"}, 
              {header:"生日",dataIndex:"birthday",renderer:this.birthdayFn}, 
              {header:"所在城市",dataIndex:"city"}, 
              {header:"身高",dataIndex:"stature"} 
           ] 
            
         }); 
         
      
      
     }, 
     birthdayFn:function(value){ 
     
     if(typeof(value)=="string") 
       return value.substring(0,10); 
      else 
      return Ext.util.Format.date(value,"Y-m-d"); 
     }, 
     updateFn:function(){ 
        var sm=this.getSelectionModel(); 
                 if(sm.getCount() == 0) { 
 		           Ext.Msg.show({ 
 					  title : '注意!', 
 					  msg : '请选择需要修改的学生!', 
 					  icon : Ext.MessageBox.WARNING, 
 					  buttons : Ext.MessageBox.OK 
 				}); 
 		     return; 
 	        } 
 	           var _record=sm.getSelected(); 
 	           if(_record.data.birthday.length>=10) 
 	                 _record.data.birthday=_record.data.birthday.substring(0,10); 
 	                  
 	           this._updateWin._form.getForm().loadRecord(_record); 
 	           
                this._updateWin.show(); 
     }, 
     deleteFn:function(){ 
            
     }, 
     searchFn:function(){ 
           
     } 
  
 }); 
  
 /******************************************* 
 *增加人员和修改人员时所用到的Form,继承自Ext.form.FormPanel 
 * 
 * 
 ****************************************/ 
 StudentFormPanel=Ext.extend(Ext.form.FormPanel,{ 
    constructor:function(){ 
      
       StudentFormPanel.superclass.constructor.call(this,{ 
          width:340, 
          frame:true, 
          plain:true, 
          layout:"form", 
           
          labelWidth:60, 
          labelAlign:'right', 
          items:[ 
            { xtype:"hidden", 
                fieldLabel:"id", 
                id:"sid", 
                value:"", 
                width:200}, 
             { 
             xtype:"textfield", 
              fieldLabel:"姓  名", 
              vtype:"LengthLimit", 
              id:"sname", 
              value:"", 
              width:200 
              }, 
              { 
               xtype:"datefield", 
               fieldLabel:"生 日", 
               id:"birthday", 
               width:200, 
               format:"Y-m-d", 
               editable:false, 
               value:new Date() 
              }, 
              { 
              xtype:"textfield", 
              fieldLabel:"所在城市", 
              id:"city", 
              width:200, 
              value:"" 
              }, 
              { 
              xtype:"textfield", 
              fieldLabel:"身 高", 
              id:"stature", 
              width:200, 
              vtype:"IntLimit", 
              value:"" 
              } 
          ] 
        
        
       }); 
    } 
  
 }); 
  
  
 /************************************* 
 *增加用户是的弹出窗口,继承自Ext.Window 
 * 
 **************************************/ 
 AddNewStudentWindow=Ext.extend(Ext.Window,{ 
     _form:null, 
    constructor:function(){ 
       
       this._form=new StudentFormPanel();//这里新建了FormPanel 
       AddNewStudentWindow.superclass.constructor.call(this,{ 
        
          title:"增加用户", 
          width:350, 
          frame:true, 
          plain:true, 
          closeAction:"hide", 
          autoDestroy:true, 
          
          [color=#FF0000]items:[this._form],[/color] 
          modal:true, 
          buttons:[ 
           {text:"保存", 
            iconCls:"sure", 
            handler:this.sureFn, 
            scope:this}, 
            {text:"重置", 
            iconCls:"reset", 
            handler:this.resetFn, 
            scope:this}, 
            {text:"关闭", 
            iconCls:"close", 
            handler:this.closeFn, 
            scope:this} 
          ] 
       }); 
        
    }, 
    sureFn:function(){ 
     
    }, 
    resetFn:function(){ 
      
     
    }, 
    closeFn:function(){ 
     this.hide(); 
    } 
  
  
 }); 
  
 /***************************** 
 *更新用户时调用的窗口 
 * 
 ******************************/ 
  
  
 UpdateStudentWindow=Ext.extend(Ext.Window,{ 
     _form:null, 
    constructor:function(){ 
       
       this._form=new StudentFormPanel();//新建FormPanel 
       UpdateStudentWindow.superclass.constructor.call(this,{ 
        
          title:"修改用户", 
          width:350, 
          frame:true, 
          plain:true, 
          closeAction:"hide", 
          autoDestroy:true, 
          
          [color=#FF0000]items:[this._form],[/color]          
          modal:true, 
          buttons:[ 
           {text:"保存", 
            iconCls:"sure", 
            handler:this.sureFn, 
            scope:this}, 
            {text:"重置", 
            iconCls:"reset", 
            handler:this.resetFn, 
            scope:this}, 
            {text:"关闭", 
            iconCls:"close", 
            handler:this.closeFn, 
            scope:this} 
          ] 
       }); 
        
    }, 
    sureFn:function(){ 
         }, 
    resetFn:function(){ 
     
    }, 
    closeFn:function(){ 
     this.hide(); 
    } 
  
  
 }); 
 
  • 大小: 42.6 KB
  • 大小: 47.7 KB
分享到:
评论

相关推荐

    Ext继承和扩展写的例子。

    在这个特定的例子中,我们关注的是"Ext继承和扩展",这是Ext JS中两个核心的概念,它们对于理解和创建自定义组件至关重要。 1. **Ext继承**: 在面向对象编程中,继承是类之间的一种关系,允许一个类(子类或派生...

    ExtAspNet v2.2.1 (2009-4-1) 值得一看

    -修正了使用IFrameUrl的Tab在切换过程中会重复加载的问题,这是一个在v2.1.6引入的问题(feedback:eroach)。 -修正了启用AutoPostBack的Grid,其RowClick会覆盖LinkButtonField, HyperLinkField, CheckBoxField的...

    Ext中文手册

    - **社区支持**:GitHub等开源社区也有许多关于Ext的资源和支持。 #### 3. **Element:Ext的核心** - **概念解释**:`Element`是Ext中一个非常重要的概念,它是对DOM元素的封装,使得操作DOM变得更加简单高效。 - ...

    ExtAspNet_v2.3.2_dll

    -修正了使用IFrameUrl的Tab在切换过程中会重复加载的问题,这是一个在v2.1.6引入的问题(feedback:eroach)。 -修正了启用AutoPostBack的Grid,其RowClick会覆盖LinkButtonField, HyperLinkField, CheckBoxField的...

    老师整理的extjs学习笔记

    `Ext.Panel` 是一个非常常用的容器组件,它可以用来封装一组相关的组件,并提供标题栏、边框等样式。下面是一个简单的 `Ext.Panel` 示例: ```javascript new Ext.Panel({ title: 'Example Panel', width: 400, ...

    extjsTestextjsTestextjsTestextjsTest

    标题中的"extjsTest"可能是指Ext JS的测试项目或者示例,这是一款基于JavaScript的前端框架,用于构建富客户端应用程序。它提供了丰富的组件库、数据管理、布局管理和可定制的用户界面。描述中的内容重复了标题,...

    ExtJS MVC示例

    1. **解耦合**:MVC模式将应用程序分为独立的三个部分,使得修改一个部分不会影响其他部分。 2. **模块化**:每个部分都可以单独开发和测试,有利于团队协作。 3. **复用性**:View和Controller可以复用,降低代码...

    ExtJs GridPanel简单的增删改实现代码

    ExtJs GridPanel是ExtJs框架中用于展示和管理表格数据的一个重要组件,它提供了丰富的API接口,方便开发者实现复杂的数据操作。根据给出的文件信息,这里将详细解读在ExtJs GridPanel中如何实现基本的增加、删除和...

    UniGUI集合说明--追月无名.pdf

    在UniGUI中使用ADO(ActiveX Data Objects)通常涉及以下几个步骤: - **添加ADO组件**:在Delphi IDE中添加必要的ADO组件。 - **配置连接字符串**:设置正确的数据库连接字符串。 - **编写查询语句**:使用ADO组件...

Global site tag (gtag.js) - Google Analytics